Questions tagged «code-golf»

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

29
折叠相邻重复项
挑战 给定一个整数列表,请在重复删除所有成对的相邻相等项之后返回这些整数的列表。 请注意,如果您有一个相等的奇数长度游程,则其中一个将保留,而不是成对的一部分。 例: [0, 0, 0, 1, 2, 4, 4, 2, 1, 1, 0] 首先,你应该删除0, 0,4, 4以及1, 1获得: [0, 1, 2, 2, 0] 现在,您应该删除2, 2: [0, 1, 0] 这是最终结果。 测试用例 []-> [] [1]-> [1] [1,1]-> [] [1,2]-> [1,2] [11,11,11]-> [11] [1,22,1]-> [1,22,1] [-31,46,-31,46]-> [-31,46,-31,46] [1、0、0、1]-> [] [5、3、10、10、5]-> [5、3、5] [5、3、3、3、5]-> …

14
打印包含第n个斐波那契数的第n个斐波那契数!
挑战 您必须编写一个程序,以正整数n作为输入,并输出n包含n第Fib#号作为子字符串的第Fibonacci号(在整个过程中简称为Fib#)。出于此挑战的目的,斐波那契序列以开头1。 以下是一些示例,您可以将它们用作测试用例,或者用作阐明挑战的示例(对于后者,请在下面留下注释,说明您不清楚的地方)。 n=1 Fib#s: 1 ^1 1st Fib# that contains a 1 (1st Fib#) Output: 1 n=2 Fib#s: 1, 1 ^1 ^2 2nd Fib# that contains a 1 (2nd Fib#) Output: 1 n=3 Fib#s: 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233 ^1 ^2 …

19
犯罪现场调查:我的世界物品
我的世界1.12将于明天发布,让我们一起庆祝吧! 编写包含非负整数N的代码,该整数表示Minecraft中某物的项数。以对玩家更有用的方式输出,给定等于N的箱子,筹码和物品数量。使用格式 XcYsZi 哪里 X 是您可以完全填满N个物品的箱子数, Y 是您可以在填满箱子后剩余的物品可以堆满的堆叠数, Z 装满箱子和箱子后剩余的物品数量。 注意: 一叠可容纳64个物品。(我们将忽略堆叠为16或不堆叠的项目。) 胸部可容纳27叠。(这些是单箱,而不是双箱。) 因此,如果Y大于26或Z大于63则毫无意义。 需要注意的是,如果格式为零,则不会打印该术语。 因此,例如,如果Y为零X和Z非零,则格式将类似于XcZi。 同样,如果Y和Z为零和X非零,则格式为Xc。 这里的例外是当N为零时。然后0i是输出而不是空字符串。 您可以假设所有N个项目都是同一类型,因此都是可堆叠的。 您可能不会输出三个数字的列表或元组。您必须以正确的“ csi”符号给出一个字符串,并且该字符串不能有空格或逗号。 作为参考,这是一个完全堆满物品的箱子: 测试用例 in -> out 0 -> 0i 1 -> 1i 2 -> 2i 62 -> 62i 63 -> 63i 64 -> 1s 65 -> 1s1i 66 -> 1s2i …

18
折成三角形
给定一个长度可被4整除的字符串,请制作一个三角形,如下所示。 如果字符串是abcdefghijkl,则三角形将是: a b l c k defghij 如果字符串是iamastringwithalengthdivisiblebyfour,则三角形将是: i a r m u a o s f t y r b i e n l gwithalengthdivisib 如果字符串是thisrepresentationisnotatriangle,则三角形将是: t h e i l s g r n e a p i r r esentationisnotat 笔记 该字符串仅包含从a到的字符z。 只要形状未损坏,就允许使用前导/尾随空格和换行符。 允许使用字符串列表作为输出。 这是代码高尔夫球。以字节为单位的最短答案将获胜。有标准漏洞。

1
展开柯克曼的女学生问题
对于那些不熟悉的人,柯克曼的女学生问题如下: 一所学校的15位年轻女士连续三天并排走出家门,连续7天:要求每天安排她们,以便没有两个人能并排走两次。 我们可以将其视为嵌套的3 x 5列表(或矩阵): [[a,b,c] [d,e,f] [g,h,i] [j,k,l] [m,n,o]] 本质上,原始问题的目标是找出安排上述矩阵的7种不同方式,以使两个字母永远不会共享同一行。从MathWorld(上面链接)中,我们找到了以下解决方案: [[a,b,c] [[a,d,h] [[a,e,m] [[a,f,i] [[a,g,l] [[a,j,n] [[a,k,o] [d,e,f] [b,e,k] [b,h,n] [b,l,o] [b,d,j] [b,i,m] [b,f,g] [g,h,i] [c,i,o] [c,g,k] [c,h,j] [c,f,m] [c,e,l] [c,d,n] [j,k,l] [f,l,n] [d,i,l] [d,k,m] [e,h,o] [d,o,g] [e,i,j] [m,n,o]] [g,j,m]] [f,j,o]] [e,g,n]] [i,k,n]] [f,h,k]] [h,l,m]] 现在,如果有不同数量的女学生怎么办?可能会有第八天吗?†这是我们的挑战。 †在这种情况下,没有††,但不一定是其他数组尺寸 ††我们可以很容易地显示出来,因为它a与其他字母排成一行。 挑战: …

30
最小倍数为9,然后是可选的0
给定一个正整数,找到其最小的正整数倍,它是9的游程,然后是一个可选的0 /^9+0*$/。 例如,如果给定的正整数为2,则返回90,因为90是2的正整数倍,并且是正则表达式匹配的最小整数/^9+0*$/。 测试用例: n f(n) 1 9 2 90 3 9 4 900 5 90 6 90 7 999999 8 9000 9 9 10 90 11 99 12 900 13 999999 14 9999990 15 90 16 90000 这是代码高尔夫球。以字节为单位的最短答案将获胜。有标准漏洞。

24
创建一个二进制标尺
给定数字n,生成此模式的前n列: # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # ################################ ... 在(1索引)n处的列的高度是n的二进制表示形式中的尾随0位数,再加上1。结果,底层填充了每一列,第二层填充了第二列,第三层填充了第四列,依此类推。 规则 您可以通过任何标准方法输入和输出。 您可以假定输入是1到999之间的一个整数(含)。 只要模式是完整的,输出就可以包含任意数量的空格。 该模式必须为1索引,并且格式必须与此处所示相同。 您可以使用任何单个非空白字符代替#,但不能更改空格字符。 测试用例 1 # 2 # ## 3 # ### …

19
计算一个单词的二进制拆分和
取一个s包含可打印ASCII字符的字符串作为输入,并输出其“二进制分割和”。需要解释吗? 如何获得二进制分割和? A4在下面的说明中,我们将以字符串为例。 将字符转换为二进制,将每个字母视为7位ASCII字符 A -> ASCII 65 -> 1000001 4 -> ASCII 52 -> 0110100 将二进制数连接成新的二进制数 A4 -> 1000001 & 0110100 -> 10000010110100 将新的二进制数字拆分为多个块,在其左边1不能有a 0。您不应拆分连续1的。 10000010110100 -> 100000, 10, 110, 100 将这些二进制数字转换为十进制 100000, 10, 110, 100 -> 32, 2, 6, 4 取这些数字的总和: 32 + 2 + 6 + 4 …

19
不同数量,相同重量
背景 整数的汉明权重是其二进制表示形式中的1的数量。对于此挑战,整数用32位表示,并且它们是无符号的。 挑战 给定0到2 ^ 32-1之间的整数(不包括在内),请在相同范围内以及汉明权重相同的情况下输出另一个整数。 例子 Input (Decimal) | Input (Binary) | Hamming weight | Possible output (Decimal) 46 | 0b0010 1110 | 4 | 15 12 | 0b0000 1100 | 2 | 3 1 | 0b0000 0001 | 1 | 2 3 | 0b0000 0011 | 2 | …

30
动态创建盒子
挑战: 绘制一个矩形的ASCII框:[] 规则: 接受宽度和高度输入 您可以假设它们都是数字 必须产生一个包含换行符\ n的字符串 例子: 2:2 [][] [][] 2:3 [][] [][] [][] 最小字节数获胜。

10
盲文化字符串
不,这不是将ASCII文本转换为盲文的伪装。 Unicode中有2 8 = 256个盲文模式。(“盲文”是指8单元电池) W,等等。那里有多少个ASCII字符? 2 7 = 128? 那么,让我们将ASCII转换成盲文,因为绝对没有理由不这样做! 从ASCII到盲文的方式 我们可以看到每个单元格代表一个位,每个单元格是否被“打孔”。 现在,我们可以分配每个单元以将ASCII字符的位表示为二进制。 (1 )(16 ) (2 )(32 ) (4 )(64 ) (8 )( - ) * ( - )为空白 现在我们可以将ASCII转换为盲文了。例如,A(65 = 01000001)等于⠡。 例子 Input -> Output Braille! -> ⠢⠺⠱⡱⡴⡴⠵⠑ (Upscaled) .. .o o. o. .. .. o. o. …

30
第n个字符等于最后一个字符的第n个字符吗?
受启发于起点是否等于终点 给定一个字符串s和一个整数n,输出有关nth中的char 是否s等于nin中结尾char中的th 的真/假s。 输入项 非空字符串和整数。您可以使用基于0的索引或基于1的索引。整数基于字符串保证有效。例如,如果字符串是“ supercalifragalistic123”,则对于基于1的索引,整数可以为1到23,对于基于0的索引可以为0到22。请注意,n长度可以大于的一半s。 输入仅限于可打印的ASCII。 输出量 真假值,取决于中的nth值是否s等于中的n最后一个值s。 请注意,对于从0开始的索引,最后一个字符在位置0;对于从1开始的索引,最后一个字符在位置1。可以将其视为将字符串与其相反的字符串进行比较。 测试用例 0索引 "1", 0 Truthy 1 == 1 "abc", 1 Truthy b == b "aaaaaaa", 3 Truthy a == a "[][]", 1 Falsey ] != [ "[][]", 0 Falsey [ != ] "ppqqpq", 2 Truthy q == q "ababab", …
22 code-golf  string 

12
反转并添加简并性
介绍 反向和加法听起来很简单,以n相反的顺序将其加到其数字上。(例如234 + 432 = 666)。 如果重复应用此过程,则某些数字最终将达到质数,而某些数字将永远不会达到质数。 例 我目前有 11431代表 11431 is not prime 11431 + 13411 = 24842 which is not prime 24842 + 24842 = 49684 which is not prime 49684 + 48694 = 98378 which is not prime 98378 + 87389 = 185767 which is prime! 这个数字很重要 …

20
找到第一场比赛
这是Brain-Flak生日前的一系列挑战之一。在这里找到更多。 挑战 对于这一挑战,您的目标是在完全匹配的括号中找到第一对匹配的()[]{}<>括号。借用DJMcMayhem对完全匹配的字符串的定义: 出于此挑战的目的,“括号”是以下任意字符:()[]{}<>。 如果左括号和右括号的顺序正确且其中没有字符,则将一对括号视为“匹配” () []{} 或者,如果其中的每个子元素也都匹配。 [()()()()] {<[]>} (()()) 子元素也可以嵌套在几层深处。 [(){<><>[()]}<>()] <[{((()))}]> 当且仅当每对括号中的正确开/右括号正确且顺序正确时,字符串才被视为“完全匹配”。 输入项 输入将由单个非空字符串或仅包含character的char数组组成()[]{}<>,并保证完全匹配。您可以采用符合我们I / O默认值的任何合理方式进行输入。 输出量 程序或函数的输出将是括号的索引,该括号将关闭第一个括号。输出必须是0或已1索引。同样,输出可以以与我们的I / O默认值相对应的任何合理方式进行。 测试用例 Input 0-indexed 1-indexed () 1 2 (<>) 3 4 <[]{<>}> 7 8 {}{}{}{} 1 2 [[]<>[]] 7 8 这是代码高尔夫球,最少字节获胜!

12
分而治之
有时,当我懒散地尝试考虑出现在我面前的数字时,过了一会儿,我意识到这比我想象的要容易。就拿2156例如:它最终发生,我认为这两个21和56是的倍数7,所以肯定2156 = 21 x 100 + 56也是一个倍数7。 您的任务是编写一些代码,以标识由于此类巧合而更易于分解的数字。 更确切地说: 编写一个程序或函数,将正整数n作为输入,如果存在一个除数d(大于1),n可以将其切成两个以产生两个正整数,每个整数都是的倍数d;然后返回一个真值。否则返回假值。 “切成两半”表示您的想法:通常的以10为底的表示形式n在某个点划分为前半部分和后半部分,以产生另外两个以10为底的整数。如果第二个整数的前导零是可以的(但请注意,它必须是一个正整数,所以拆分1230为123和0无效)。 真实值和虚假值可以取决于输入。例如,如果在您选择的语言中有任何非零整数是真实的,那么欢迎您返回除数d或“ 的除数”之一n(或n就此而言)。 例如,集合中至少有两位数字的任何偶数{2, 4, 6, 8}都会产生真实值:只需在第一个偶数之后将其分割即可。同样,例如,任何质数n都会产生伪造的值,任何一位数字也会产生伪造的值。 注意,考虑素数除数就足够了d。 您可以假定输入有效(即正整数)。 这是code-golf,因此以字节为单位的最短代码获胜。但是欢迎使用所有语言的解决方案,因此我们可以争取使用每种语言的最短代码,而不仅仅是整体上最短的代码。 测试用例 (您只需要输出一个真实值或虚假值;下面的注释仅是为了说明。)产生真实值的一些输入是: 39 (3 divides both 3 and 9) 64 (2 divides both 6 and 4) 497 (7 divides both 49 and 7) 990 (splitting into 99 and 0 is …

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.