Questions tagged «code-golf»

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

3
跳出框框思考-我做对了吗?
我一直在听,跳出框框思考是一个值得实现的目标,但是如何判断我是否成功完成了目标呢? 为了解决这个难题,我已经写了一个Brainwave-to-ASCII转换器,理论上应该产生类似 # +------------+ # | thinking | # | | # +------------+ # # 要么 # +------+ # | | thinking # | | # | | # +------+ # # 这样就很容易判断一个人是否在跳槽。(#不在输出中,代表新行。) 但是,由于错误,有时仅返回输出的较小部分: | | # +---------+ # thinking # # +# |# inking |# # # 任务 请帮助我编写一个程序或函数来自动对Brainwave-to-ASCII …

18
镇上有两个新的警长-识别DJMcMego对!
我们在城镇Mego和DJMcMayhem中有一些新的警长主持人。我们需要挑战以适当地尊重他们的新职位,所以我们走了。 将悬停在他们的个人资料上时,引起了我的注意-他们的用户ID为和。如果执行数位减法,您会发现一些令人兴奋的事情(当然,要考虑绝对差值):45941317163171631716459414594145941 3|1|7|1|6 4|5|9|4|1 -+-+-+-+- (-) 1|4|2|3|5 上述算法生成的数字为。此整数有一些特殊之处:它仅包含连续的数字,并以升序排列,但是恰好其中一个数字未正确放置。142351423514235444 如果数字绝对差是按升序排序的连续整数,但我们将其中的一个正整数称为DJMcMego对,则它们中的一个不属于它。即,可以将逐位减法的结果的确切一位移动到另一位置,使得所获得的整数仅具有以升序排序的连续数字。(a ,b )(a,b)(a, b) 在上面的示例中,该对是DJMcMego对,因为如果在和之间移动,则结果为,这满足条件。请注意,结果数字的数字不必以开头,它们应该是连续的。当一个人不确定应该做出什么决定时,他们总是可以依靠另一个人的帮助来解决问题。4 3 5 12345 1(31716 ,45941 )(31716,45941)(31716, 45941)4443335551234512345123451个11 您的任务是根据输入的正整数对是否为DJMcMego对来输出真实/虚假值。 您可以确保和的位数相同,始终至少为4。b一种aabbb 您可以采用任何合理格式的整数(即本机整数,字符串,数字列表等)。 您可以使用任何编程语言进行竞争,并且可以通过任何标准方法接受输入并提供输出,同时请注意,默认情况下会禁止这些漏洞。这是代码高尔夫球,因此每种语言的最短提交(以字节为单位)将获胜。 测试用例 a, b -> Output 31716, 45941 -> Truthy 12354, 11111 -> Truthy 56798, 22222 -> Truthy 23564, 11111 -> Truthy 1759, 2435 -> Truthy 12345, …

13
打印字时钟
自从几年前我看到第一个单词以来,我总是被这种字时钟所困扰,在这种时钟中,时间实际上是由点亮或未点亮成有意义的句子来说明的。 该时钟上显示的文本如下。 IT IS HALF TEN QUARTER TWENTY FIVE MINUTES TO PAST TWO THREE ONE FOUR FIVE SIX SEVEN EIGHT NINE TEN ELEVEN TWELVE O'CLOCK 您的任务是编写一个工作时钟。且仅当与打印当前时间相关时,单词才会亮起。否则,它们会熄灭。单词通过打印而被“点亮”,并且被替换为单词长度的多个空格而被“点亮”。 示例:如果当前时间是17:23,则打印的文字必须完全是以下内容: IT IS TWENTY FIVE MINUTES PAST FIVE 规则 打印的时间为12h,但没有AM / PM。 四舍五入仅以分钟为单位(秒完全无关)。舍入到最接近的5的倍数。因此,例如,即使17:52:38实际上最接近17:55,但是由于秒数无关紧要,因此17:52实际上被舍入为17:50,并且打印的文本是“六到十分钟”(具有相关的间距)。因此,如果XX为5的倍数,XX则将从HH:(XX-2):00到HH:(XX + 2):59使用。MINUTES如果或在分钟部分点亮(在“ TO”或“ PAST”之前)FIVE,则必须出现该单词。TENTWENTY 所有不相关的单词都将替换为所需的任意空格,以将文本保留在上方模板中的位置。尾随空格可能会被修剪。必须保留与将文本保持在预期位置相关的空间。 尾随线也可能被修剪。仍需要出现相关的空行。例: IT IS TEN MINUTES PAST …
59 code-golf  string  date 

30
计算尾随真相
受我亲爱的朋友和同事的启发,并为之缅怀, Dan Baronet,1956年-2016年。RIP 他为该任务找到了最短的APL解决方案: 任务 给定一个布尔列表,计算尾随真值的数量。 案例案例 {} → 0 {0} → 0 {1} → 1 {0, 1, 1, 0, 0} → 0 {1, 1, 1, 0, 1} → 1 {1, 1, 0, 1, 1} → 2 {0, 0, 1, 1, 1} → 3 {1, 1, 1, 1, 1, 1} …

13
建立一个沙堆
一个阿贝尔沙堆,对于我们的目的,是整数坐标无限电网,初始为空沙。每秒之后,将一粒沙粒放在(0,0)。只要网格单元有4个或更多的沙粒,它就会同时向其四个邻居中的每一个洒一个沙粒。(x,y)的邻居是(x-1,y),(x + 1,y),(x,y-1)和(x,y + 1)。 当一个细胞溢出时,可能导致其邻居溢出。一些事实: 此级联最终将停止。 细胞溢出的顺序无关紧要。结果将是相同的。 例 3秒后,网格看起来像 ..... ..... ..3.. ..... ..... 4秒后: ..... ..1.. .1.1. ..1.. ..... 15秒后: ..... ..3.. .333. ..3.. ..... 在16秒后: ..1.. .212. 11.11 .212. ..1.. 挑战 用尽可能少的字节编写一个函数,该函数采用单个正整数t并在t秒后输出沙堆的图片。 输入项 您选择的任何格式的单个正整数t。 输出量 t秒钟后使用字符显示沙堆的图片 . 1 2 3 编辑:使用任何您喜欢的四个不同字符,或绘制图片。如果您未使用“ .123”或“ 0123”,请在答案中指定字符的含义。 与示例不同,您的输出应包含显示沙堆的非零部分所需的最少行和列数。 也就是说,对于输入3,输出应为 3 对于4,输出应为 …

23
最短的不可匹配的正则表达式
您的任务是编写没有字符串可以匹配的最短有效正则表达式,包括空字符串。 提交内容必须采用以下格式(“文字符号”): /pattern/optional-flags 最短的正则表达式获胜。正则表达式的大小以字符为单位。(包括斜杠和标志) 请说明您的正则表达式如何工作(如果不简单的话) 谢谢,玩得开心!

30
找到最平滑的数字
您的挑战是找到给定范围内最平滑的数字。换句话说,找到最大素因数最小的数。 一个光滑的数字是其最大素因子小。这种类型的数字对于快速傅立叶变换算法,密码分析和其他应用程序很有用。 例如,在该范围内5, 6, 7, 8, 9, 10,8是最平滑的数字,因为8的最大质数为2,而所有其他数字的质数为3或更大。 输入:输入将是两个正整数,它们定义一个范围。该范围的最小整数是2。您可以选择范围是包含范围,排除范围,半排除范围等,只要可以在您的语言范围内指定任意范围即可。您可以通过函数输入,stdin,命令行参数或任何等效的语言方法获取数字。输入中没有编码额外的信息。 输出:在输入范围内返回,打印或等效的一个或多个最大平滑(最小最大因数)的整数。返回多个结果是可选的,但是如果选择这样做,则必须明确分隔结果。本地输出格式适合多种结果。 请在您的答案中说明您如何接受输入并给出输出。 得分:打高尔夫球。如果使用ASCII写入,则按字符计数;如果不使用ASCII,则按8 * bytes / 7计算。 测试用例: 注意:这些是Python样式的范围,包括低端但不包括高端。根据您的程序进行更改。仅需要一个结果。 smooth_range(5,11) 8 smooth_range(9,16) 9, 12 smooth_range(9,17) 16 smooth_range(157, 249) 162, 192, 216, 243 smooth_range(2001, 2014) 2002

20
挖一条边境战trench
背景:有太多来自布兰迪亚的非法移民越过边界前往阿斯坦。阿斯坦皇帝(Astan)曾命令您挖沟以将其拒之门外,而布兰迪亚(Blandia)必须支付费用。由于所有打字员都已休假直到安排好沟槽,因此您的代码必须尽可能短。* 任务:给定阿斯坦(Astan)和布兰迪亚(Blandia)之间边界的2D地图,让布兰兹(Blands)支付(带有土地)边界战trench。 例如:标记了Astanian单元,标记了ABlandic单元B和标记了Trench单元+(地图框仅是为了清楚起见): ┌──────────┐ ┌──────────┐ │AAAAAAAAAA│ │AAAAAAAAAA│ │ABAAAAAABA│ │A+AAAAAA+A│ │ABBBAABABA│ │A+++AA+A+A│ │ABBBAABABA│ │A+B+AA+A+A│ │ABBBBABABA│→│A+B++A+A+A│ │ABBBBABBBB│ │A+BB+A++++│ │ABBBBABBBB│ │A+BB+A+BBB│ │ABBBBBBBBB│ │A+BB+++BBB│ │BBBBBBBBBB│ │++BBBBBBBB│ └──────────┘ └──────────┘ 详细信息:该地图将至少具有三行三列。最上面的行将完全是Astanian,最下面的行将完全是Blandic。 只要输入和输出保持一致,就可以使用任何三个值来表示阿斯坦领土,布兰迪领土和边界trench沟。 自动机公式:在摩尔邻域中具有至少一个Astanian细胞的Blandic细胞成为边界沟槽细胞。 测试用例 [ "AAAAAAAAAA", "ABAAAAAABA", "ABBBAABABA", "ABBBAABABA", "ABBBBABABA", "ABBBBABBBB", "ABBBBABBBB", "ABBBBBBBBB", "BBBBBBBBBB" ] 变成: [ "AAAAAAAAAA", "A+AAAAAA+A", "A+++AA+A+A", "A+B+AA+A+A", "A+B++A+A+A", "A+BB+A++++", "A+BB+A+BBB", "A+BB+++BBB", "++BBBBBBBB" …

30
最短的人生游戏
康威的《人生游戏》是蜂窝自动化的经典例子。这些单元形成一个正方形网格,每个单元具有两个状态:存活或死亡。在每个回合中,每个小区都会根据其状态及其八个邻居的状态同时进行更新: 如果一个活细胞恰好有两个或三个活的邻居,则它仍然活着 如果一个死细胞正好有三个活着的邻居,它就会活着 您的任务(如果您选择接受)是用您喜欢的语言编写最短的《人生游戏》实现代码。 规则: 网格必须至少为20x20 网格必须环绕(所以网格就像圆环的表面一样) 您的实现必须允许用户输入自己的启动模式 如果您看不到正在发生的事情,GoL会毫无意义,因此必须有自动机运行的视觉输出,每转的结果显示的时间足够长!

30
鸭,鸭,鹅!
还记得孩子们的游戏“鸭子,鸭子,鹅”吗?没有?我也不。 挑战 无限次地在单独的行上打印单词“ duck”。 打印单词“鹅”。 您的程序结束。 规则 尝试以最少的字节数玩游戏。 至少必须有一只鸭子。 列表末尾必须只有一只鹅。 每行上只能有一只鸟。没有空行。 输出字符串的大小写无关紧要。 一行内的空格很好。 您的程序必须完成。 您的程序不能始终产生相同数量的鸭子。 玩得开心! 请注意:此问题不是最短代码的重复,以产生不确定的输出 原因包括: 儿童游戏协会 结果字符串的已定义开始和结束要求。另一个挑战中没有指定的输出。 答案对于另一个非重复的挑战,单位字节数。这一项的平均数约为30左右。 根据这一挑战与那个挑战之间的重叠量,任何包含“ random”标签的代码高尔夫问题都是重复的。我们应该全部删除吗? 此挑战的代码答案将与另一挑战匹配(以一种肿的方式),但该挑战的答案与该挑战不匹配。
58 code-golf  random 

9
我的监狱安全吗?
为您的挑战提供监狱布局的输入,以确定是否有任何囚犯可以逃脱。 输入项 输入可以采用任何合理的格式,例如字符串,数组,数组数组等。在这种情况下#,输入将由三个字符P和空格组成。输入内容不一定包含所有三个字符。 #: 一堵墙 P:囚犯 空间:一个空白空间 输入示例如下所示: ##### # # # P # # # ##### 输出量 监狱是否安全的真实/错误值。监狱只有能够容纳所有囚犯的情况下才是安全的。如果有任何囚犯可以逃脱,那是不安全的。 如果囚犯没有完全被墙壁包围,他们可以逃脱。对角线连接完全封闭。 测试用例 ############# Truthy # P # P# # # # # P # ############# ############# Truthy # P P # # # # P # ############# ############# Falsey # P …

30
这个数字是二进制的吗?
如果整数的二进制表示形式包含的1s比0s大,而忽略了前导零,则表示二进制为重。例如1是二进制重的,因为它的二进制表示很简单1,但是4不是二进制重的,因为它的二进制表示是100。如果出现平局(例如2,二进制表示为10),则该数字不视为二进制重数。 给定一个正整数作为输入,如果它是二进制重数,则输出一个真值,如果不是二进制数,则输出一个假值。 测试用例 格式: input -> binary -> output 1 -> 1 -> True 2 -> 10 -> False 4 -> 100 -> False 5 -> 101 -> True 60 -> 111100 -> True 316 -> 100111100 -> True 632 -> 1001111000 -> False 2147483647 -> 1111111111111111111111111111111 -> True 2147483648 …

18
像查克·诺里斯一样计数
正如众所周知的, 查克·诺里斯(Chuck Norris)数到无限。两次 此外, 查克·诺里斯(Chuck Norris)可以倒数到无限远。 另外,尽管可能不为人所知,查克·诺里斯(Chuck Norris)除了英语之外还能说一点西班牙语。 挑战 编写可以用两种不同语言运行的程序(或函数)。程序应以一种语言输出序列 1, 1, 2, 2, 3, 3, 4, 4, ... 而用另一种语言,它应该产生序列(包括前导零) 1, 2, ..., 9, 01, 11, 21, 31, ..., 89, 99, 001, 101, 201, ... 规则 允许使用任何编程语言编写程序或功能。禁止出现标准漏洞。 相同语言的不同版本(例如Python 2/3)不算作不同语言。相关语言(例如C / C ++或Matlab / Octave)确实算作不同语言。 没有输入。 程序应继续输出序列项,直到被用户停止为止。由于程序不会自行停止,因此最终无法产生输出。它必须在程序运行时连续或批量生产。 输出可以使用STDOUT或等效输出,也可以显示在图形窗口中。序列项之间可以使用任何非数字分隔符,只要可以将每个项与其相邻项区分开即可。如果在各条款之间清除了屏幕,这也是可以接受的。 任一个序列都可以从而0不是从开始1。在这种情况下,按“两次”顺序0应按重复,就像其他数字一样。 前导零在“向后”序列中很重要。例如,第十项是01; 既不1是001也不可接受。 …

25
康托尔难以置信的数字
不可说的数字是可以被7整除或以7作为其数字之一的数字。一个儿童游戏是要计算跳过无法说出的数字 1 2 3 4 5 6 ( ) 8 9 10 11 12 13 ( ) 15 16 ( ) 18 ... Cantor版本的游戏是通过将序列“ 1 2 3 4 5 6()8 ...”递归填充到上面的间隙()中来定义的序列。 1 2 3 4 5 6 1 8 9 10 11 12 13 2 15 16 3 18 19 …

30
让我们做一些“ deciph4r4ng”
在这个挑战中,您的任务是解密字符串。幸运的是,该算法非常简单:从左向右读取,遇到的每个数字N(0至9)必须替换为字符N + 1个位置。 例 输入字符串"Prog2am0in6"将通过以下方式解码: 因此,预期输出为"Programming"。 澄清和规则 输入字符串将仅包含32-126范围内的ASCII字符。您可以假设它永远不会为空。 原始解密的字符串保证不包含任何数字。 字符一旦被解码,就可以由随后的数字引用。例如,"alp2c1"应解码为"alpaca"。 引用永远不会环绕字符串:只能引用以前的字符。 您可以编写完整的程序或函数,以打印或输出结果。 这是代码高尔夫,所以最短的答案以字节为单位。 禁止出现标准漏洞。 测试用例 Input : abcd Output: abcd Input : a000 Output: aaaa Input : ban111 Output: banana Input : Hel0o W2r5d! Output: Hello World! Input : this 222a19e52 Output: this is a test Input : golfin5 3s24o0d4f3r3y3u …

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.