Questions tagged «code-golf»

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

21
星期几(在Flooptonia)?
您是前往Flooptonia星球的太空旅行者!这次飞行还将花费47,315年,因此要在您进行低温冻结之前花费时间,您可以决定编写一个程序来帮助您了解Flooptonian日历。 这是208天的弗洛普顿日历: Month Days Input Range Qupu 22 [0-22) Blinkorp 17 [22-39) Paas 24 [39-63) Karpasus 17 [63-80) Floopdoor 1 [80] Dumaflop 28 [81-109) Lindilo 32 [109-141) Fwup 67 [141-208) 挑战 给定年份中的整数天(范围[0-208)),您的程序将输出相应的月份日期和月份名称(例如13 Dumaflop)。 但是,有一个例外:Floopdoor是Flooptonians的特殊时间,显然应该拥有其自己的日历页面。出于这个原因,Floopdoor不是用一天写的(即输出是Floopdoor,不是1 Floopdoor)。 测试用例 0 => 1 Qupu 32 => 11 Blinkorp 62 => 24 Paas 77 => …
34 code-golf  date 

30
扭曲的话!
扭曲的话! 给定一个字符串和一个正整数。您必须来回扭动琴弦。 输入/输出示例 输入项 Programming Puzzles & Code Golf 4 输出量 Prog mmar ing zzuP les oC & de G flo 输入项 输入可以通过STDIN或函数参数接收。输入将包含一个字符串和一个正整数n。整数将确定每条双绞线的长度。 绳子来回扭动。和的输入HELLO, WORLD!将类似于: 输出量 输出将是扭曲的文本。它可能没有任何尾随空格。如果输入的字符串长度不能被行长度整除,请添加空格直到行被填充: 一个例子: 输入项 Hello, World! 5 输出(请注意最后的空格) Hello roW , ld!
34 code-golf  string 

18
展开数组
这个挑战是由有关Mathematica.SE的一个问题引起的。 假设您有一些任意结构的嵌套列表/数组(每个级别的列表不一定具有相同的长度)。为简单起见,我们假设节点是非负整数或空数组。举个例子 [[[1, 3], 2], [1, 4], 12, [[0, [], 0], [5, [7]]]] 有时,将列表展平以对节点执行一些操作更为方便,例如 --> [1, 3, 2, 1, 4, 12, 0, 0, 5, 7] --> [1, 1, 0, 1, 0, 0, 0, 0, 1, 1] 但是最后,您实际上想要保留原始结构,因此您想将其转换为 --> [[[1, 1], 0], [1, 0], 0, [[0, [], 0], [1, [1]]] 您的任务是执行最后一步。 …

30
查找给定数字的倍数,其十进制表示形式类似于二进制
我所遇到的一个问题上,似乎有趣的代码审查现场。我认为OP做错了,但不能确定...所以让我们为他解决!(编写程序,而不是函数/过程) 输入(标准输入或类似输入): x十进制表示形式的整数。它大于1且小于2 ^ 31。 输出(标准输出或类似输出): y十进制表示形式的整数。x * y以十进制表示的乘积只能包含数字0和1。它必须是大于0的最小值。 注意:输出不受限制-如果最小值y在10 ^ 100左右,则您的程序必须输出其所有100位数字(我不知道是否有合理的限制,例如2 ^ 64 on- y并没有解决它)。 您的程序应该在合理的时间内(1秒或1个小时?)完成所有x范围内的操作。 奖金: 如果您的程序对输入的大小(RAM除外)没有限制,并且具有多项式复杂度,则将程序的字节数乘以0.8并四舍五入。 示例:输入2;输出5,因为2 * 5 = 10 示例:输入21;输出481,因为21 * 481 = 10101 免责声明:对于代码审查网站上的问题,我概不负责。如有任何差异,仅将以上描述视为适当的规格。 OEIS A079339
34 code-golf  number 

1
扫雷求解器
我们已经生成了扫雷场,但是在PCG炸毁之前,确实有人必须清除这些生成的地雷! 您的任务是写一个Minesweeper解算器,该解算器与“ Working Minesweeper”的公认解决方案的稍作修改的版本兼容(动作之间用空格隔开,以允许更大的字段)。 输入:扫雷字段,字段之间用空格分隔。第一行表示地雷总数。 x:不变 !:标志 数字:该区域周围的地雷数量 例: 10 0 0 1 x x x x x 0 0 2 x x x x x 0 0 2 ! x x x x 0 0 1 2 x x x x 0 0 0 1 x x x x …

5
激光去哪儿了?
取一个二维网格并在其上绘制许多线段以表示镜像。现在选择一个点以放置理论激光,并选择一个角度以定义其指向的方向。问题是:如果您沿着激光束路径走了指定的距离,您在哪个坐标点? 例: 在该图像中,L是激光的位置,t是它的角度(从正X轴测量的), ,M1,M2和M3都是线段反射镜,并且E是后的激光束路径上的点D = d1 + d2 + d3 + d4单位,从开始L。 目标 写的最短程序(以字节计)的输出E给出L,t,D,和一个反射镜的列表。 (使用http://mothereff.in/byte-counter计数字节。) 输入格式 输入来自标准输入,格式为: Lx Ly t D M1x1 M1y1 M1x2 M1y2 M2x1 M2y1 M2x2 M2y2 ... 所有值都是与该正则表达式匹配的浮点数:[-+]?[0-9]*\.?[0-9]+。 每个数字之间始终只有一个空格。 允许在输入周围使用引号。 t以度为单位,但不一定在该[0, 360)范围内。(如果您愿意,可以改用弧度,请在回答中说出来。) D可能为负,有效地将激光旋转180度。D也可能是0。 可能有任意多个镜像(根本没有)。 镜子的顺序无关紧要。 您可以假设输入将是4个数字的倍数。例如Lx Ly t或Lx Ly t D M1x1无效,将不会进行测试。完全没有输入也是无效的。 上面的布局可以输入为: 1 1 430 17 …
34 code-golf 

30
每个输入单词的首字母大写
这是一个相对较快的方法,但是我敢肯定您会喜欢的。 Codegolf一个程序,它将以句子的形式接受输入,然后为输出提供每个单词大写的首字母。 规则: 提交内容可能不是函数形式。所以不行: function x(y){z=some_kind_of_magic(y);return z;} 作为您的最终答案...您的代码必须表明它接受输入并提供输出。 该代码必须保留输入中包含的任何其他大写字母。所以 eCommerce and eBusiness are cool, don't you agree, Richard III? 将呈现为 ECommerce And EBusiness Are Cool, Don't You Agree, Richard III? 你们中有些人可能会想:“容易,我只使用正则表达式!” 因此在您选择的高尔夫语言中使用本地正则表达式将导致30个字符的罚款,这将应用于您的最终代码计数。邪恶的笑 在这种情况下,“单词”是由空格分隔的任何内容。因此palate cleanser是两个字,而pigeon-toed被视为一个字。if_you_love_her_then_you_should_put_a_ring_on_it被认为是一个字。如果单词以非字母字符开头,则会保留该单词,因此_this在渲染后仍为_this。(对Martin Buttner指出此测试用例表示敬意)。 4b。不能保证输入短语中的单词将由单个空格分隔。 测试用例,(请用于测试您的代码): 输入: eCommerce rocks. crazyCamelCase stuff. _those pigeon-toed shennanigans. Fiery trailblazing 345 thirty-two Roger. …

23
加密哈希高尔夫
比赛结束了。 由于警察和强盗挑战的性质,当对相关强盗挑战的兴趣减少时,警察挑战变得容易得多。因此,尽管您仍然可以发布哈希函数,但是您的答案将不会被接受或成为排行榜的一部分。 这个挑战是最短实施的搜索哈希函数是抗碰撞,也就是说,它应该是不可能找到相同的哈希两个不同的消息。 作为警察,您尝试发明并实现一个哈希函数,以在代码大小和抗冲突性之间找到最佳折衷方案。使用太多字节,另一位警察将使您失望! 作为强盗,您尝试通过破坏警察的职能来挫败他们的尝试,证明它们不合适。这将迫使他们使用更多字节来增强算法! 警察挑战 任务 实现加密散列函数H:我- > 0您选择,其中我在2以下的集合中的所有非负整数的2 30和Ø低于2集的所有非负整数的128。 您可以将H实现为实际函数,该函数接受并返回单个整数,整数或整数数组的字符串表示形式,或者从STDIN读取并以10或16为基数打印到STDOUT的完整程序。 计分 H必须抵抗下面定义的强盗挑战。 如果强盗在发布后的168小时内将您提交的内容拒之门外,则认为该文件已被破解。 H的实现应尽可能短。最短的不打扰的提交将是警察挑战赛的获胜者。 附加规则 如果将H实现为函数,请提供一个包装程序,以从行为如上所述的程序中执行该函数。 请为您的程序或包装器至少提供三个测试向量(示例输入及其相应的输出)。 H可以是您的新颖设计(首选)或众所周知的算法,只要您自己实现即可。禁止使用任何类型的内置哈希函数,压缩函数,密码,PRNG等。 通常用于实现哈希函数(例如,基本转换)的任何内置方法都是公平的游戏。 程序或函数的输出必须是确定性的。 应该有一个免费的(如在啤酒中)编译器/解释器,可以在x86或x64平台上或从Web浏览器中运行。 您的程序或函数应该相当高效,并且必须在不到2秒的时间内对I 2 2 19以下的消息进行哈希处理。 对于边缘情况,在我的计算机(Intel Core i7-3770,16 GiB RAM)上花费的(墙)时间将是决定性的。 考虑到这一挑战的性质,无论是否更改输出,都禁止以任何方式更改答案的代码。 如果您提交的内容被破解(甚至没有被破解),则可以发布其他答案。 如果您的答案无效(例如,它不符合I / O规范),请删除它。 例 Python 2.7,22个字节 def H(M): return M%17 包装纸 print H(int(input())) 强盗挑战 任务 通过在强盗的线程中张贴以下内容来破解任何警察的提交:I中的两个消息M和N,使得H(M)= …

4
Flippin广场
通过仅翻转(绕中心点反转)行和列,创建一个程序以消除数字的平方。 输入项 输入将是9x9的数字网格,格式为9行字符串,如下所示: 986553229 264564891 759176443 643982153 567891234 526917874 685328912 891732537 117644378 此输入格式不可协商-输入格式“具有创造性”的任何解决方案都将被视为无效。 输出量 输出应为翻转动作列表,当以给定顺序应用于输入时,应重新创建目标网格。 示例输出(不是先前输入示例的解决方案): 28IF5D3EAB9G3 此输出格式也是不可协商的。输出中不应包含换行符或空格,只能使用1- 9和A- I字符(如果需要,可以使用小写字母代替大写字母)。 目标网格(您需要重新创建的状态)如下: 123456789 234567891 345678912 456789123 567891234 678912345 789123456 891234567 912345678 数字1- 9应该用作翻转行的说明,字母A- I应该用于列。网格处于还原状态时,如下所示。 ABCDEFGHI ||||||||| vvvvvvvvv 1 -> 123456789 2 -> 234567891 3 -> 345678912 4 -> 456789123 5 -> …
34 code-golf 

30
ROT-13转换标准输入
挑战:读取任意长度的输入并产生输入的ROT13。除AZ以外的所有字符都应原样复制到输出中,并在可能的情况下保留大小写。 任何可以读写标准流的语言都是公平的游戏。

22
画心形
挑战 画一个心形 ...作为ASCII艺术! 您的艺术不必看起来完全像我的,但必须看起来像心形。 心脏内部必须至少包含20次“爱”字样 规则 该程序必须将美术作品写入控制台。 最短的代码(以字节为单位,任何语言)均获胜。 获胜者将在2月14日情人节那天被选中

30
这个数字是邪恶的吗?
介绍 在数论中,如果二进制表示形式中的偶数个数为1,则该数字被认为是邪恶的。在今天的挑战中,您将确定给定的数字是否为邪恶。 挑战 您的工作是编写一个完整的程序或函数,以接受单个非负整数作为输入并输出(或返回)该数字是否为邪恶。 如果数字是邪恶的,则可以输出任何真值,而如果数字不是邪恶的,则可以输出任何虚假的值。 您可以以任何可接受的格式输入和输出。 不允许出现标准漏洞。 OEIS序列A001969是包含所有邪恶数字的序列。 这是前10000个邪恶数字的列表,以供参考(还有更多测试用例!) 这个问题是代码高尔夫,所以越短越好。 不要被打高尔夫球的简短答案所困扰。我鼓励您以喜欢的任何语言提交。 以下是一些测试案例: 3 => True 11 => False 777 => True 43 => True 55 => False 666 => False 排行榜 页面底部是一个堆栈片段,其中包含此问题的页首横幅。(谢谢@MartinEnder) 为确保您的答案显示出来,请使用以下Markdown模板以标题开头。 # Language Name, N bytes N您提交的文件大小在哪里。如果您提高了分数,则可以通过打败旧分数来保持标题。例如: # Ruby, <s>104</s> <s>101</s> 96 bytes 如果您想在标头中包含多个数字(例如,因为您的分数是两个文件的总和,或者您想单独列出解释器标志罚分),请确保实际分数是标头中的最后一个数字: # Perl, 43 + …

30
隔行扫描
您面临的挑战是编写一个程序或函数,当给定两个相等长度的字符串时,该程序或函数将交换所有其他字符并以任一顺序输出/返回结果字符串。 例子 "Hello," "world!" --> "Hollo!" "werld," "code" "golf" --> "codf" "gole" "happy" "angry" --> "hnpry" "aagpy" "qwerty" "dvorak" --> "qvertk" "dworay" "1, 2, 3" "a, b, c" --> "1, b, 3" "a, 2, c" "3.141592653589" "2.718281828459" --> "3.111291623489" "2.748582858559" "DJMcMayhem" "trichoplax" --> "DrMcMoylex" "tJichapham" "Doorknob" "Downgoat" --> "Doonkoot" "Dowrgnab" …
34 code-golf  string 

6
您可以通过加倍并重新排列来达到此数字吗?
受到Math.SE上这个问题的启发。 首先,1您可以重复执行以下两个操作之一: 将数字加倍。 要么 以任何您想要的方式重新排列其数字,但不得有任何前导零。 以链接的Math.SE帖子为例,我们可以1000通过以下步骤进行操作: 1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 125, 250, 500, 1000 您可以通过此过程获得哪些数字,最短的解决方案是什么? 挑战 给定正整数,如果可能的话N,确定N上述过程可以达到的最短整数序列。如果有几个最佳解决方案,请输出其中任何一个。如果不存在这样的序列,则应输出一个空列表。 该序列可以采用任何方便,明确的字符串或列表格式。 您可以编写程序或函数,通过STDIN(或最接近的替代方案),命令行参数或函数自变量获取输入,并通过STDOUT(或最接近的替代方案),函数返回值或函数(out)参数输出结果。 这是代码高尔夫球,因此最短的答案(以字节为单位)获胜。 测试用例 这是所有可达的数字列表,最大为256,包括256。第一列是数字(您的输入),第二列是最佳步骤数(可用于检查解决方案的有效性),第三列是专栏是到达那里的一种最佳顺序: 1 1 {1} 2 2 {1,2} 4 3 {1,2,4} 8 4 {1,2,4,8} 16 5 {1,2,4,8,16} 23 7 {1,2,4,8,16,32,23} 29 10 {1,2,4,8,16,32,23,46,92,29} 32 …

30
我的微波炉应该运行多长时间?
我饿了。让我们微波一下。给定1到4位之间的数字输入,输出微波炉应运行的秒数。 细节 技巧是弄清楚用户输入的是秒还是秒和分钟的组合。一个和十个位置应解释为秒,成百上千个位置应解释为分钟。例如,该值1234应解释为12分钟34秒,并且9876应为98分钟76秒。键入130和90都将导致90秒的烹饪时间。 以下是一些其他输入和输出: 1 = 1 11 = 11 111 = 71 1111 = 671 9 = 9 99 = 99 999 = 639 9999 = 6039 规则 这是代码高尔夫球,因此以字节为单位的最短程序获胜。不允许出现标准漏洞。给定从1到9999的任何整数输入时,获胜作品必须返回正确答案。
33 code-golf  number 

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.