Questions tagged «code-golf»

Code-golf是在最小的源代码字节中解决特定问题的竞赛。

21
编写一个函数/方法,该函数可以使用北约拼音字母输入字符串并拼写出该单词。标题箱可选
编写一个程序,该程序使用北约拼音字母输入字符串并拼写出该单词。 映射如下: 'A' -> 'Alfa' 'B' -> 'Bravo' 'C' -> 'Charlie' 'D' -> 'Delta' 'E' -> 'Echo' 'F' -> 'Foxtrot' 'G' -> 'Golf' 'H' -> 'Hotel' 'I' -> 'India' 'J' -> 'Juliett' 'K' -> 'Kilo' 'L' -> 'Lima' 'M' -> 'Mike' 'N' -> 'November' 'O' -> 'Oscar' 'P' -> 'Papa' …

10
相互模仿
设AAA为由nnn十进制数字d1,d2,...,dnd1,d2,...,dnd_1,d_2,...,d_n组成的正整数。。。,d n。让BBB为另一个正整数。 对于这一挑战的目的,我们称之为AAA一个山寨的BBB如果存在正整数中的至少一个列表p1,p2,...,pnp1,p2,...,pnp_1,p_2,...,p_n使得: ∑i=1ndipi=B∑i=1ndipi=B\sum_{i=1}^{n}{{d_i}^{p_i}}=B AAA和BBB被称为倒数仿冒如果AAA是的模仿BBB和BBB是的模仿AAA。 例 526526526和853853853是互惠的模仿者,因为: 53+29+63=85353+29+63=8535^3 + 2^9 + 6^3 = 853 和: 83+51+32=52683+51+32=5268^3 + 5^1 + 3^2 = 526 挑战 给定两个正整数AAA和BBB,您的任务是打印或返回真实值,如果AAA和BBB是倒数模仿者,否则返回假值。 澄清和规则 您可以采用任何合理,明确的格式(例如整数,字符串,数字列表等)来获取AAA和BBB AAA和BBB可以相等。如果数字是其自身的对等模仿,则它属于A007532。 代替真/假值,您可以返回两个不同的一致值。 对于1≤A&lt;10001≤A&lt;10001\le A<1000和1≤B&lt;10001≤B&lt;10001\le B<1000,代码必须在完成少于一分钟。如果要花费更多的时间来获得较高的值,则必须能够在理论上解决它们。 这是代码高尔夫球。 测试用例 Truthy: 1 1 12 33 22 64 8 512 23 737 89 89 222 592 526 853 …

16
获取给定年份和月份中第n天的日期
介绍 人们通常将日期称为“ 2018年8月的第二个星期五”或“ 2012年3月的第四个星期日”。但是很难说那是什么日期!您的任务是编写一个接收年,月,周,整数的程序,并输出该日期。 挑战 作为输入,您将获得一年,一个月,一周中的一天以及一个数字。 您可以采用任何合理的格式进行输入,例如在星期几中使用字符串或在工作日中使用零索引,甚至可以在单个字符串中使用年和月。不过,请在回答中说明您的输入格式。 告诉您目标月份的星期几的整数将是1-5的整数。该整数将永远不会指向不存在的一周中的某天(例如,2019年2月的第五个星期五,它不存在)。 岁月永远是美好的。 您的输出可以采用任何合理的格式,包括打印最终日期。但是,请解释您的输出格式和答案。 在输出中提供年份和月份是可选的。另外,您可以假定日期是有效的。 输入和输出示例 考虑一下此输入,其格式为:年为4位数字,月为整数,星期几为字符串,序数为整数: 2019,3,Saturday,2 2019,12,Sunday,1 2019,9 Saturday,1 输出: 3月9 日12月1 日9月7日 这是代码高尔夫球,因此最短的答案为准。
17 code-golf  date 

19
这个数字是小山数字吗?
小山号是在第一个和最后一个具有相同数字的数字,但这还不是全部。在山丘数中,前几位数严格增加,而后几位数严格减少。可以重复的最大数字。 这是一个山顶数字的示例: 12377731 | 1237... | ...731 ^ same ^ | strictly increasing | strictly decreasing ---------+---------------------+--------------------- 12377731 ^^^ okay because largest digit can be repeated 这不是: 4588774 | ...8774 | ^^ not the largest digit | so this has to be strictly decreasing | but it's not, so not …

4
系统会为您提供一个要制作的字符串,并以空字符串开头,并使用追加和克隆成本进行制作
您的任务是创建给定的目标字符串。从一个空字符串开始,您必须在其中添加字符,直到您的字符串与我们想要的字符串相同为止。您可以将一个字符添加到带有成本x的字符串的末尾,或者可以克隆具有成本y的字符串。我们想要的是最便宜的方法。 测试用例 targetString , appendcost, clonecost -&gt; totalcost "bb", 1, 2 -&gt; 2 "bbbb", 2, 3 -&gt; 7 "xzxpcxzxpy", 10, 11 -&gt; 71 "abababab", 3, 5 -&gt; 16 "abababab", 3, 11 -&gt; 23
17 code-golf  string 

19
书面数字序列
这是一个合理的琐碎序列,不在在线整数序列百科全书中。 从一个空序列开始,然后将每个术语定义为用英文写出到目前为止序列中所有数字的字符数,这些数字不带空格。* 供参考(英文的所有(十进制)数字的字符数): zero one two three four five six seven eight nine 4 3 3 5 4 4 3 5 5 4 (这是A52360和A5589的开始。) 由于空序列中存在零位,因此这使第一项a(0)=0a(0)=0a(0) = 0。 这使得第二个条目a(1)=4a(1)=4a(1) = 4因为它需要四个字符来写入“零”,这是迄今为止唯一的数字。 这使第三个条目a(2)=8a(2)=8a(2) = 8因为要再花四个字符来写“四个”,总共要八个字符才能写“ zerofour”。 这使第四个条目a(3)=13a(3)=13a(3) = 13因为要再花五个字符才能写“八”,总共要十三个字才能写“ zerofoureight”。 这使第五个条目a(4)=21a(4)=21a(4) = 21,这是因为要花更多的八个字符才能写“ onethree”,总共要花21个字符才能写“ zerofoureightonethree”。 ...等等。以下是前100个条目: 0, 4, 8, 13, 21, 27, …

19
解码7段显示器
大家可能都知道7段显示器,除了其他以外,它还可以显示所有数字:0 … 90…90\dots 9 挑战 我们仅考虑段,您的任务是给定已打开段的位来解码单个数字。A … G一种…G\texttt{A}\dots\texttt{G} 可以将其编码为8位整数,这是每个数字的表格,其中包含二进制表示形式以及相应的little-endian和big-endian值: Digit0123456789.ABCDEFG01111110001100000110110101111001001100110101101101011111011100000111111101111011Little-endian126481091215191951121271230x7E0x300x6D0x790x330x5B0x5F0x700x7F0x7BBig-endian12612182158204218250142542220x7E0x0C0xB60x9E0xCC0xDA0xFA0x0E0xFE0xDE数字.ABCDEFG小端大端0011111101260x7E1260x7E1个00110000480x30120x0C2011011011090x6D1820xB63011110011210x791580x9E400110011510x332040xCC501011011910x5B2180xDA601011111950x5F2500xFA7011100001120x70140x0E8011111111270x7F2540xFE9011110111230x7B2220xDE \begin{array}{c|c|rr|rr} \text{Digit} & \texttt{.ABCDEFG} & \text{Little-endian} && \text{Big-endian} & \\ \hline 0 & \texttt{01111110} & 126 & \texttt{0x7E} & 126 & \texttt{0x7E} \\ 1 & \texttt{00110000} & 48 & \texttt{0x30} & 12 & \texttt{0x0C} \\ 2 & \texttt{01101101} & 109 …
17 code-golf  decode 

28
给定一个字符串,计算它对应的列数
在Excel中,列的范围为A-Z, AA,AB,AZ,BA,..,BZ依此类推。它们实际上每个代表数字,而是编码为字母字符串。 在此挑战中,将为您提供一串字母,并且您必须计算其对应的列。 一些测试: “ A”返回1(表示它是第一列) 'B'返回2 'Z'返回26 'AA'返回27 'AB'返回28 'AZ'返回52 'ZZ'返回702 'AAA'返回703 您可以假设只给出大写字母。 最短的字节获胜。 祝好运!
17 code-golf  math 

7
拆分位!
我们定义作为鲜明的权力清单2那笔X。例如,V (35 )= [ 32 ,2 ,1 ]。V(x)V(x)V(x)222xxxV(35)=[32,2,1]V(35)=[32,2,1]V(35)=[32,2,1] 按照惯例,此处的权力从最高到最低排序。但这不会影响挑战的逻辑,也不会影响预期的解决方案。 任务 给定一个半素数 ,将V (N )中的每个项替换为另一个与该项加和的2的幂的列表,这样所有结果子列表的并集就是矩阵M的精确覆盖,定义为:NNNV(N)V(N)V(N)222MMM Mi,j=V(P)i×V(Q)jMi,j=V(P)i×V(Q)jM_{i,j}=V(P)_i \times V(Q)_j 其中和Q是N的素数。PPPQQQNNN 通过一些示例,这更容易理解。 例子1 对于,我们有:N=21N=21N=21 V(N)=[16,4,1]V(N)=[16,4,1]V(N)=[16,4,1] 和 V (P )= [ 4 ,2 ,1 ]P=7P=7P=7V(P)=[4,2,1]V(P)=[4,2,1]V(P)=[4,2,1] 和 V (Q )= [ 2 ,1 ]Q=3Q=3Q=3V(Q)=[2,1]V(Q)=[2,1]V(Q)=[2,1] M=(844221)M=(842421)M=\pmatrix{8&4&2\\4&2&1} 要将变成M的精确覆盖,我们可以将16分成8 + 4 + 4和4分成2 + 2,而1保持不变。因此,可能的输出是:V(N)V(N)V(N)MMM1616168+4+48+4+48+4+44442+22+22+2111 [[8,4,4],[2,2],[1]][[8,4,4],[2,2],[1]][ [ 8, …

18
单个数字的最长重复子序列
挑战: 给定一个正整数,输出至少出现两次的最长的单个数字子序列,并且具有另一个数字的边界(或整数的开始/结尾)。 一个例子: 输入:7888885466662716666 单个数字的最长子序列为88888(7[88888]5466662716666),长度为5。但是,该子序列在整数中仅出现一次。 相反,输入的结果7888885466662716666应为6666(78888854[6666]271[6666]),因为它(至少)出现两次。 挑战规则: 子序列的长度优先于其发生的次数。(即输入8888858888866656665666,我们输出88888([88888]5[88888]66656665666;长度5,发生两次),而不是666(88888588888[666]5[666]5[666];长度3,发生三次)。 如果多个子序列的长度相等,则输出出现次数最大的子序列。即,具有输入3331113331119111,输出我们111(333[111]333[111]9[111];长度为3时,发生三次),而不是333([333]111[333]1119111;长度3为好,但发生两次) 如果多个子序列的出现次数和长度相等,则可以输出其中一个或全部(以任何顺序)。即,具有输入777333777333,可能的输出是:777; 333; [777, 333]; 或[333, 777]。 子序列必须具有其他数字的边界(或整数的开始/结尾)。即,输入122222233433结果为33(1222222[33]4[33];长度2,出现两次)而不是222(1[222][222]33433,长度3,两次出现都无效)。 这适用于所有计入出现次数计数器的数字。即,输入811774177781382结果为8([8]117741777[8]13[8]2;长度1,发生三次,三次)而不是77(811[77]41[77]781382/ 811[77]417[77]81382;长度2,发生两次,一次无效)或1(8[1][1]774[1]7778[1]382;长度1,发生四次,两次无效。 您可以假设输入内容不包含任何数字0(它将与匹配[1-9]+)。(这是为了避免不得不处理10002000应该输出的测试用例,默认情况下000大多数语言都将输出0。) 您可以假定输入将始终包含至少一个有效输出。 I / O都很灵活。可以是数字/字节/字符的列表/数组/流,也可以是字符串而不是单个整数。 通用规则: 这是代码高尔夫球,因此最短答案以字节为单位。 不要让代码高尔夫球语言阻止您发布使用非代码高尔夫球语言的答案。尝试针对“任何”编程语言提出尽可能短的答案。 标准规则适用于您的答案,因此您可以使用STDIN / STDOUT,具有正确参数的函数/方法和返回类型的完整程序。你的来电。 默认漏洞是禁止的。 如果可能的话,请添加一个带有测试代码的链接。 另外,强烈建议为您的答案添加说明。 测试用例: Input: 7888885466662716666 / [7,8,8,8,8,8,5,4,6,6,6,6,2,7,1,6,6,6,6] Output: 6666 / [6,6,6,6] Input: 3331113331119111 / [3,3,3,1,1,1,3,3,3,1,1,1,9,1,1,1] Output: 111 / [1,1,1] Input: …

30
总和
设(输入)n=42n=42n=42 然后除数是:1,2,3,6,7,14,14,21,42 平方除数:1,4,9,9,36,49,196,441,1764 求和(加法):2500 由于因此我们返回真实值。如果它不是理想的正方形,则返回虚假值。50×50=250050×50=250050\times 50=2500 例子 : 42 ---&gt; true 1 ---&gt; true 246 ---&gt; true 10 ---&gt; false 16 ---&gt; false 这是代码高尔夫球,因此每种语言的最短代码(以字节为单位)获胜 感谢@Arnauld指出了序列:A046655

25
工作日倒计时
我只是有一个天才的想法,那就是使工作生活更轻松-倒计时到特定的日期,只计算工作日。 基本任务是创建一个到特定日期的倒计时,该日期仅包括倒计时中的工作日。 工作日为星期一,星期二,星期三,星期四和星期五。 输入内容应为“非官方”欧洲标准格式的特定日期,dd.MM.yyyy并且必须为今天或将来的一天。 输出仅应为剩余天数。 因为它是代码高尔夫球,所以最短的代码获胜。 测试用例: Today | Input | Output 10.12.2018 | 17.12.2018 | 5 02.10.2018 | 16.10.2018 | 10 如果我错过了这个问题,请原谅我-这是我的第一个问题:) 编辑: 您可以将其false用作输出而不是0 &lt;-,但它并不漂亮 无需遵守DST
17 code-golf  date 

22
按数字对描述的内容排序
给定一个正整数,我们可以形成一个新的数字,该数字由成对的数字描述(对于带有奇数数字的数字,添加前导0)。 例如: 1234可以读为1 2、3 4s-因此,1234的输出为2444。 643的位数为奇数,因此添加前导零使其成为偶数。然后,将0643读取为:零6s,四个3s,因此输出为3333。 (这是OEIS A056967)。 任务:给定一个正整数数组,按升序对它们按数字对描述的值排序。导致相同值的输入数字之间的顺序无关紧要。 输入:正整数的数组/列表/集合。在输入前导零不会允许的,并输入作为数字/字符串/列表等。不允许-输入的语言应尽可能接近整数/数字类型。 输出:以上述方式排序的数组,以任何常用方式返回(函数返回值/ STDOUT /呼入void /等)。您可以单独打印它们,将它们以数字,字符串或列表形式返回数字。 测试用例 Input Output [19, 91, 2345, 2023] [19, 2023, 2345, 91] [25257, 725, 91, 5219, 146125, 14620512] [725, 5219, 14620512, 91, 146125, 25257] [123130415 3335 91 111111111 528 88] [528, 111111111, 123130415, 3335, 88, 91] [1 …

15
帮助我的多节律
我是一名音乐家,一生中需要更多的节奏! 当两个事件(拍手,音符,萤火虫闪烁等)以两个不同的规则间隔发生时,音乐(和自然界)中就会发生多节奏。两种事件在同一时间间隔内发生的次数不同。 如果我在同一时间间隔内用左手敲击两次,用右手敲击3次,看起来会像这样: ------ R . . . L . . 顶部的连字符表示多节奏模式的长度,它是最低的公共倍数或2和3。这可以理解为模式重复的点。 还有一个“节奏感”,这是两只手轻拍时产生的模式: ------ R . . . L . . M . ... 这是一个简单且非常常见的节奏,比率为3:2。 只是说我不想做一个简单的可以在脑海中锻炼的多节律,所以我需要一些东西来为我锻炼。我可以在纸上做长版,或者... 规则: 如上所述,编写一些代码以生成并显示一个多节奏图。 任何旧的语言,请尝试使用最少的字节。 您的代码有两个参数: 左手的抽头数(正整数) 右手的抽头数(正整数) 它将计算出长度,这是两个参数的最小公倍数。 第一行将包含两个空格字符,后跟显示长度的连字符(长度*'-') 第二和第三行将显示左右手的模式: 它将以R或L开头,表示它是哪只手,后跟一个空格。 那只手的间隔是长度除以其参数。 点击将从第三个字符开始,由您选择的任何字符表示。从那时起,它将显示相同的字符“间隔”字符。 它不会长于长度线。 第四行是元节奏: 它将以大写字母M开头,后跟一个空格。 从第三个字符开始,它将在每个位置上显示一个字符(您选择的任何字符),左右手都可以点击。 尾随空格无关紧要。 测试用例: r = 3,l = 2 ------ …
17 code-golf 

7
堆叠式数字楼梯
给定正整数和,如下所述输出列和行文本。^ h w ^ ^ hwwwHHhwwwHHh 第一行以11 0秒开始,第二行以10 1秒开始,第三行以9 2秒开始,依此类推,在第十行以2 9秒开始。在前十行中的每行上,在连续运行连续数字之后,第二个最低位出现两次,第二个最低位出现两次之后,此模式将永远重复。如果0出现s,则其后的数字始终为9s。 第十行下方的行与紧接在其上方的行相同,但向右移一行。如果新数字不位于其自身的另一个实例旁边,则它与最左上的数字相同。否则,它是下一个最高的数字(从9循环回0)。 前元素如下:11 × 1011×1011\times10 00000000000 11111111110 22222222211 33333333221 44444443322 55555544332 66666554433 77776655443 88877665544 99887766554 这是带有彩色文本的图像,以使图案更清晰。 如果您需要减少列数/行数,则只需裁剪以上文本即可。 如果您需要产生更多的列/行,则应扩展现有的楼梯。如果更多的列/行增加了连续数字的新阶梯,则应从整数中循环选择数字。因此对于输入,输出应为(15 ,13 )(15,13)(15,13) 000000000009988 111111111100998 222222222110099 333333332211009 444444433221100 555555443322110 666665544332211 777766554433221 888776655443322 998877665544332 099887766554433 009988776655443 100998877665544 这是带有颜色的文本图像: 规则 输出可以通过任何方便的方法给出。 完整的程序或功能都是可以接受的。如果是函数,则可以返回输出而不是打印输出。 如果愿意,可以返回行列表。 您可以根据需要返回2D数字数组或数字列表。 不允许出现标准漏洞。 …

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.