Questions tagged «code-golf»

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

3
挑战四:现在的组装线!
<<上一页 下一页>> 圣诞老人能够重新制造精灵过夜偷走的所有礼物!现在,他必须将它们发送到装配线进行包装。他通常有一个摄像头来监督装配线,既要确保精灵们做得很好,又要确保装配线的图片在广告海报上看起来不错[需要引用] 不幸的是,他的相机坏了,所以他希望您对装配线的外观进行模拟! 为了使装配线保持最高效率,并减少发生错误或故障的风险,所有现有的包装盒均具有相同的宽度,以使其完美地适合于输送带。 挑战 给定一个由其尺寸表示的礼物清单,输出带有所有礼物的传送带。 礼物是这样绘制的: +----+ / /| +----+ | | | + | |/ +----+ 该礼物的宽度为1,高度为2,长度为4。请注意,加号不计入边长,因此长度为4的礼物实际上横跨6个位置。 所有礼物都紧挨着绘制,最接近的两个字符之间有一个空格。也就是说,礼物的左下角之间的间距应使如果礼物盒具有长l和宽w,则下一个礼物盒的左下角将恰好l + w + 4位于前一个箱子的左下角的右侧。 绘制完所有存在的盒子之后,通过用width + 2下划线替换最后一行中每条盒子之间的空间来绘制传送带。 与礼品盒的最终输出(l, w, h)的[(4, 1, 2), (8, 1, 3), (1, 1, 1)]是: +--------+ +----+ / /| / /| +--------+ | +-+ +----+ | …

16
素数范围的第一个和最后一个质数
挑战 对于给定的正整数范围,找到完全由质数数字组成的第一个和最后一个质数,特殊情况下包括0(对于数字,0-2的范围应输出2-2)。范围包括在内。如果找不到数字,则预期输出为0。如果只有一个这样的数字,则预期输出为该数字的两倍。 例子 对于范围1–100,第一个质数是2,最后一个质数是73(7和3是质数)。 对于70-80的范围,第一个质数是73,最后一个质数也是73(由于给定范围中只有一个正确的数字,因此将其返回两次)。 对于190-200范围,没有正确的答案,因此您返回0。 对于2000-2100范围,第一个质数是2003,最后一个质数是2053(我们省略了数字0,但其他所有数字都是质数) 这是代码高尔夫球,所以最短的代码以字节为单位! 所有标准漏洞均适用。 输入值 您可以自由接受两个整数作为输入,但是您可能会看到fit,stack,函数参数,CLI参数,stdin。 你必须只收到两个整数。 输出量 您必须返回结果(一个元组,一个数组,如果您的语言支持它,则应多次返回),将其保留在堆栈中或打印出来(在这种情况下,必须以某种方式将它们分开)。 输出的顺序无关紧要。 您可以使用前导/后括号和换行符。 即使有答案,您也必须返回两个数字,即使它们相同。 如果没有答案,则必须返回0。

22
交替涂抹
介绍 此挑战要求您将整数二进制表示形式的尾随零设置为010101…,这最好用一个示例进行说明: 给定整数400,第一步是将其转换为二进制: 110010000 如我们所见,第五位是最低有效1位,因此从此处开始,我们将低位零替换为0101: 110010101 最后,我们将其转换回十进制: 405 挑战 给定正整数返回/输出,上述定义过程的相应结果值。 规则 此序列仅针对具有至少一位的整数定义1,因此输入将始终≥1 您可以将输入作为字符串,而不是数字列表(十进制) 您不必处理无效的输入 测试用例 以下是一些带有中间步骤的测试用例(您不必打印/返回这些用例): In -> … -> … -> Out 1 -> 1 -> 1 -> 1 2 -> 10 -> 10 -> 2 3 -> 11 -> 11 -> 3 4 -> 100 -> 101 -> …

5
不太值得信赖的朋友的银行
介绍 您已经在后院的虚假国家担任财政部长的工作。您已决定在您的国家/地区为自己和不那么可信赖的朋友建立自己的银行。由于您不信任朋友,因此您决定编写一个程序来验证所有交易,以防止朋友过度消费您的虚构货币并破坏您的经济。 任务 给定初始余额和所有交易,请过滤掉某人试图超支的所有交易,并阻止所有试图超支的人(包括试图超支至已关闭账户的人)再次使用您的银行,方法是过滤掉往来于他的银行的交易。 /她的银行帐户。 输入输出 两个列表A和B作为输入和一个列表C作为输出。A是格式为的每个帐户的期初余额[["Alice", 5], ["Bob", 8], ["Charlie", 2], ...]。B是具有以下格式的交易列表,[["Bob", "Alice", 3], ["Charlie", "Bob", 5], ...]其中["Bob", "Alice", 3]表示Bob想要支付Alice 3货币单位。C格式应与相同B。A,B并且C可以采用任何合理的格式。 测试用例 A: [["Alice", 5], ["Bob", 2]] B: [["Alice", "Bob", 5], ["Bob", "Alice" 7]] C: [["Alice", "Bob", 5], ["Bob", "Alice" 7]] A: [["A", 2], ["B", 3], ["C", 5]] B: …
12 code-golf 

7
在音乐谱号之间转换
离开之前,您无需了解太多的乐谱即可完成此挑战。 说明 在标准活页乐谱中,双谱号跨过页面,用作音符的参考点,让您知道应该演奏哪个音符。如果您还不熟悉高音谱号和低音谱号,请参阅Wikipedia中的说明: 谱号是一种音乐符号,用于指示音符的音高。放在五线谱开始处的其中一行上,它指示该行上音符的名称和音高。该线用作参考点,通过该参考点可以确定五线谱的任何其他线或空间上的音符名称。 在上图中,线条的上半部分是高音谱号,用a表示 下半部分是低音谱号,用 正如你可以在高音谱号看到一张纸条上的最底部线是Ë。(我不是外面计数谱号线这一挑战的笔记)在低音谱号,最低线是摹。要完成此挑战,您必须执行以下操作: 挑战 给定以下形式之一的输入(您的选择),请将其转换为相反的谱号。无论是高音谱号还是低音谱号,在您的语言中都可以是Truthey / Falsey值(不仅是两个值),例如 F#T 或 F#True 或 F#高音 但不是 F#-1 或 F#4 空格和大写字母是可选的,不显示单位,并且不允许尾随空格。 Input Expected Output E Treble G F Treble A F# Treble A# G Treble B G# Treble C A Treble C A# Treble C# B Treble D C Treble …

6
打我的“预高尔夫球” C
背景 对于用C语言提交的代码高尔夫,我需要一个处理工具。像在许多其他语言中一样,空格在C源代码中几乎无关紧要(但并非总是如此!)-仍然使代码对人类更易理解。一个不包含单个冗余空格的,功能全面的C程序通常很难读取。 因此,我喜欢用C编写代码以提交包含空格和注释的代码高尔夫球,因此程序在编写时保持可理解的结构。最后一步是删除所有注释和多余的空格。这是一项繁琐而漫不经心的任务,实际上应该由计算机程序的实习生来完成。 任务 根据以下规则,编写程序或函数,以消除某些“预查询”的C源代码中的注释和多余的空格: 一个\(反斜杠)在该行的最后一个字符是续行。如果找到此行,则必须将以下行视为同一逻辑行的一部分(例如,可以在执行其他任何操作之前将其\和以下\n(换行符)完全删除) 注释将仅使用单行格式,以开头//。因此,要删除它们,无论//在字符串文字之外遇到的任何地方,都忽略逻辑行的其余部分(请参见下文)。 空格字符是(空格),\t(制表符)和\n(换行符,因此这里是逻辑行的结尾)。 当找到空白序列时,请检查其周围的非空白字符。如果 它们都是字母数字或下划线(范围[a-zA-Z0-9_])或 两者都是+或 两者都是-或 前一个是/,下一个是* 然后将序列替换为一个空格()字符。 否则,请完全消除该顺序。 此规则有一些例外: 预处理程序伪指令必须出现在输出中它们自己的行上。预处理程序指令是以开头的行#。 在字符串文字或字符文字中,您不应删除任何空格。任何不以奇数个反斜杠()直接开头的"(双引号)/ '(单引号)都\以字符串文字 / 字符文字开头或结尾。您可以确保字符串和字符文字在它们开始的同一行结束。字符串文字和字符文字不能嵌套,所以'一个内部的字符串文字,以及一个"一个内部字符文字没有任何特殊含义。 I / O规格 输入和输出必须是包含换行符的字符序列(字符串)或不包含换行符的字符串数组/列表。如果选择使用数组/列表,则每个元素代表一行,因此换行符在每个元素之后都是隐式的。 您可以假定输入是有效的C程序源代码。这也意味着它仅包含可打印的ASCII字符,制表符和换行符。允许输入格式不正确的行为。 开头和结尾的空白/空行是不允许的。 测试用例 输入 main() { printf("Hello, World!"); // hi } 输出 main(){printf("Hello, World!");} 输入 #define max(x, y) \ x > y ? x : …
12 code-golf  c 

2
如何缩短此python代码?
这是我要缩短的代码。 n=input() while n: s=raw_input() x,r,g,b=(int(x) for x in s.split()) a=x/r%2 c=x/g%2 d=x/b%2 r=((a*10+c)*10)+d if r==0:e="black" elif r==100:e="red" elif r==1:e="blue" elif r==10:e="green" elif r==101:e="magenta" elif r==11:e="cyan" elif r==110:e="yellow" else:e="white" print(e) n-=1 输入3 4643 5913 4827 9752 5583 5357 5120 9400 2025 5475 4339 8392 输出: black yellow black
12 code-golf  tips  python 

15
交替数字
考虑正整数数组: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, ... 然后,将它们串联: 1234567891011121314151617181920212223242526... 然后将它们分成可变长度的块,每个长度等于第N个正整数: [1][23][456][7891][01112][131415][1617181][92021222][324252627][2829303132] ... --------------------------------------------------------------------------- 1 2 3 4 5 6 7 8 9 10 ... 任务 给定整数N(对于1索引为正数或对于0索引为非负数),您的任务是输出第N个块中的数字增量(和连续数字之间的差)。 默认情况下禁止使用漏洞。 适用标准输入和输出方法。 您可以为N选择0或1索引。 序列必须以1开始。 这是代码高尔夫球,以字节为单位的最短代码获胜。 范例与测试案例 1个索引的测试用例。如果您希望索引为0,则只需将N减1。 N, Chunk, Deltas, Sum 1 -> 1 -> [] …

1
拆弦!
挑战 给定一个字符串输入,输出它的已删除版本。 流程 P r Pr r o o o g g g r r r rogr r a -> a -> a -> a -> a -> -> -> -> -> m m m m m m m m m m mmar m i i i i i i …

15
创建一个指针序列
让我们定义指针序列是这样的任何序列A(N)= A((N-1) - (A(N-1)))的forall Ñ比一些有限数量。例如,如果我们的序列以 3 2 1 我们的下一项将是2,因为a(n-1)= 1,(n-1)-1 = 1,a(1)= 2(此示例为零索引,但是使用计算将使用哪个索引并不重要总是一样。)。如果我们重复这个过程,我们将得到无限序列 3 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 …

23
将两个整数的平均值相加
数学中有很多手段,例如算术平均,几何平均等等。 定义和任务 请注意,以下是两个正整数 * 的定义: 的根均方是它们的平方的减半(总和的平方根)。 该算术平均值是它们的总和,减半()。 的几何平均值是他们的产品的平方根()。 的调和平均值是2可以通过倒数之和(分割= )。 给定两个整数a和b 使得a,b∈[1,+∞),对a和b的上述均值求和。您的答案必须至少精确到小数点后3位,但您不必担心舍入或浮点精度错误。 测试用例 a,b->输出 7,6-> 25.961481565148972 10、10-> 40 23,1-> 34.99131878607909 2,4-> 11.657371451581236 345,192-> 1051.7606599443843 使用此程序,您可以查看更多测试案例的正确结果。这是代码高尔夫球,因此遵循标准规则的最短有效提交将获胜。 *还有许多其他方法,但是出于挑战的目的,我们将使用“定义”部分中提到的方法。

11
自求和数字
将数字转换为数字总和 没有任何数字:我们需要最短的数字 没有数字:您只能使用数字中的数字 例如 你将被给定为输入的整数n>0 比方说n=27。你要表达27的总和,使用仅数字 [2,7],在最短的可能的方式。您不必使用给定数字的所有数字! 所以27=2+2+2+7+7+7。然后我们取这些数字并计数:[2,2,2,7,7,7]。 的最终答案n=27是6 对于一个例子n=195,以获得最短的总和,我们必须使用以下数字: [5,5,5,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9]和答案是23 挑战 给定一个整数n>0,输出与之相加的最小位数(包含在数字中) 测试用例 Input->Output 1->1 2->1 10->10 58->8 874->110 1259->142 12347->1765 123456->20576 3456789->384088 这是代码高尔夫。最短的答案以字节为单位!

7
因子总数
给定n> 1的正整数,确定乘以n大于1的整数可以得到多少个数字。例如,如果n = 24,则可以通过以下方式将n表示为乘积 24 = 24 -> 24 = 24 24 = 12 * 2 -> 12 + 2 = 14 24 = 6 * 2 * 2 -> 6 + 2 + 2 = 10 24 = 6 * 4 -> 6 + 4 = 10 24 = …

5
Mozilla / 1.0 Mozilla / 2.0 Mozilla / 3.0 Mozilla / 4.0 Mozilla / 5.0
刚开始时有NCSA Mosaic,Mosaic称自己为NCSA_Mosaic/2.0 (Windows 3.1),Mosaic随图片一起显示图片,并带来很多欢乐。 15年后... 然后Google建立了Chrome,Chrome使用了Webkit,就像Safari一样,想要为Safari构建页面,因此假装为Safari。因此,Chrome使用了WebKit,并假装为Safari,WebKit假装为KHTML,KHTML假装为Gecko,所有浏览器都假装为Mozilla,Chrome调用了self Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/525.13 (KHTML, like Gecko) Chrome/0.2.149.27 Safari/525.13,并且用户代理字符串完全是一团糟,并且几乎毫无用处,每个人都假装成其他人,到处都是混乱。 在这里阅读全文... 给定用户代理字符串,返回其对应的浏览器。 您必须支持: 铬/铬* 歌剧 火狐浏览器 IE浏览器 边缘 苹果浏览器 您的代码仅需要满足所有这些测试用例。 Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.115 Safari/537.36 Chrome Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_5) AppleWebKit/537.36 …

30
我的设备出现故障...滥用其未定义的字符串行为!
救命!我的设备出现故障,每当我尝试重复一个String时,都会得到混乱的结果。与其重复N次相同的字符串,不如使用每个字符填充一个NxN的正方形,然后将正方形堆叠起来。 例如,给定String "Test"和number 2,而不是"TestTest",我得到: TT TT ee ee ss ss tt tt 一段时间后,我开始喜欢它。今天的任务是重现这种奇怪的行为。给定一个仅由可打印的ASCII组成的非空字符串,再加上一个正整数,输出故障设备返回的字符串。 所有标准规则均适用。 输入和输出可以通过任何合理的方式进行处理。 这是代码高尔夫球,因此每种语言中以字节为单位的最短代码获胜。 测试用例 输入值 输出量 ---------- “测试”,2 TT TT ee ee ss ss tt tt ---------- “ UuU”,3 单位 单位 单位 u u u 单位 单位 单位 ---------- “ A”,5 美国AAAA 美国AAAA 美国AAAA 美国AAAA 美国AAAA ---------- …
12 code-golf  string 

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.