Questions tagged «code-golf»

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

30
5个最喜欢的字母
挑战实际上非常简单。选择5个不同的字母(如果愿意,您可以选择5个最短的字母)并将它们输出到控制台。但是,不同之处在于它们必须来自以下列表: AAA BBBB CCCC DDDD EEEEE FFFFF GGG H H A A B B C D D E F G H H AAAAA BBBB C D D EEEE FFFF G GG HHHHH A A B B C D D E F G G H H A A BBBB CCCC DDDD …

30
Code Golf圣诞版:如何打印出高度为N的圣诞树
给定一个数字N,如何N使用最少数量的代码字符打印出一棵高度高的圣诞树? N假定被限制为的最小值3和的最大值30(不需要边界和错误检查)。N作为程序或脚本的唯一命令行参数给出。 感谢所有语言,如果您看到一种已经实现的语言,并且可以将其简化,请尽可能编辑-否则请评论,并希望有人清理混乱。为了清楚起见,包括换行符和空格,但不要在字符数中包括它们。 这样生成一棵圣诞树,其“树干”仅包含居中的“ *” N = 3: * *** ***** * N = 4: * *** ***** ******* * N = 5: * *** ***** ******* ********* * N定义不包括一个主干的分支的高度。 圣诞快乐PPCG!

30
ECMAScript 6及更高版本中的高尔夫技巧
这与其他“ <...>中打高尔夫球的技巧”相似,但专门针对ECMAScript 6及更高版本中JavaScript的新功能。 JavaScript的本身是一个非常冗长的语言,function(){},.forEach(),将字符串数组,类数组对象数组,等等等等都超涨大,而不是健康的高尔夫。 另一方面,ES6 +具有一些超级方便的功能并减少了占地面积。x=>y,[...x]等等只是一些示例。 请发布一些不错的技巧,以帮助减少代码中的少量额外字节。 注意:ES5技巧已在JavaScript打高尔夫球技巧中提供;请参见 该线程的答案应集中于仅在ES6和其他将来的ES版本中可用的技巧。 但是,此线程也适用于当前使用ES5功能打高尔夫球的用户。答案也可能包含一些技巧,以帮助他们理解ES6功能并将其映射到他们的ES5编码风格。

9
高尔夫降临日历
在一年中的这个时候,我们中的许多人都获得了我们的降临日历!如果您不熟悉出现日历,则这些是特殊的日历,用于在圣诞节前倒计时。以我的经验,门是随机放置的,而小时候正在锻炼明天门的位置的乐趣便是其中的一部分!如今,日历通常在每扇门后都有巧克力,但是您今年不应该购买出现日历,而应该构建ASCII日历! 任务 给定n在0- 范围内的整数()输入,将24产生一个ASCII出现日历,其中门的编号一直到n打开。您必须使用相同的顺序,在下面的例子:2,17,8,12,1,6,11,20,5,22,3,10,15,23,7,16,9,24,18,4,13,19,21,14。 门 封闭的门必须是: .-----------. | | | | | | | nn | |___________| 其中n代表门的数量(前导零是可选的),打开的门为: .-----------. |\ | | | | | | | | | | | |_________| \| 除了24号门,它是: .--------------------------. | | | | | | | 24 | |__________________________| .--------------------------. |\ | | | …

23
编程一个原始世界
让我们将原始程序定义为本身没有任何错误,但是如果您通过删除任何连续的N个字符的子字符串来修改它会出错的程序,其中1 <= N < program length。 例如,三个字符的Python 2程序 `8` 是一个原始程序(谢谢Sp),因为删除长度为1的子字符串所导致的所有程序都会引起错误(实际上是语法错误,但是任何类型的错误都可以): 8` `` `8 并且由于删除长度为2的子字符串而产生的所有程序也会导致错误: ` ` 例如,如果`8曾经是一个没有错误的程序,那么`8`它将不会是原始的,因为所有删除子字符串的结果都必须出错。 在此挑战中,您的任务是编写最短的原始程序,该程序无需输入,但可以输出以下五个单词中的任何一个: world earth globe planet sphere 您选择哪个单词完全取决于您。唯一的单词加上可选的尾随换行符应打印到标准输出(或您的语言的最接近替代品)。以字节为单位的最短程序获胜。 笔记: 需要一个独立程序,而不是一个功能。 这些单词区分大小写;输出World或EARTH不允许。 编译器警告不算作错误。 出错的子程序可以接受输入或给出输出,或执行其他任何操作,只要它们始终最终出错即可。 这是一个堆栈片段,将列出给定潜在原始程序的哪些程序需要出错: <script src='https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js'></script><script>function go() { var s = $('#i').val(), e = []; for (var i = 1; i < s.length; i++) …

14
[此处为圣诞节主题免责声明]
要注意mod,如果标题不公正,请将其更改为任何内容,我认为这很有趣。 您的任务是为此圣诞节季节挂灯,并且您的家人已决定,要使其成为圣诞节快乐,您需要在房屋上悬挂至少2个圣诞灯。因此,您面临的挑战是,给定一个数字1 < n,根据以下规范输出要悬挂的相应数量的圣诞灯... 这是基本的圣诞灯的结构: _?_ [___] /:' \ |:: | \::. / \::./ '=' 唯一不确定的部分是问号,因为取决于灯光在链中的位置,连接方式将有很大不同。 对于链中的第一盏灯,您需要输出: .--._ _(_ [___] /:' \ |:: | \::. / \::./ '=' 对于链中的最后一盏灯,您需要输出: _.--. _)_ [___] /:' \ |:: | \::. / \::./ '=' 对于中间的所有灯: _.--.--._ _Y_ [___] /:' \ |:: | \::. / …

30
Java打高尔夫球技巧
在Java中是否可以使用任何有用的快捷方式? 如下所示,import已经在程序中添加了至少17个字符。 import java.io.*; 我知道简单的解决方案是使用另一种语言,但是缩短Java程序似乎是一个真正的挑战。 提示应特定于Java:如果它们适用于大多数类似C的语言,则它们属于更一般的提示列表。
86 code-golf  tips  java 

25
饥饿的老鼠
将16堆奶酪放在4x4正方形上。它们被标记为到。最小的桩是,最大的桩是。1个111616161个11161616 饥饿的老鼠是如此饥饿,以至于它总是直接跳到最大的一堆(即)并立即吃掉它。161616 之后,它进入最大的相邻堆,并很快也吃掉那堆。(是的…… 真的很饿。)依此类推,直到不再有相邻的堆了。 一堆最多可以有8个邻居(水平,垂直和对角线)。没有环绕。 例 我们从以下几堆奶酪开始: 3615147891个101211165134237105681213159114141162\begin{matrix} 3&7&10&5\\ 6&8&12&13\\ 15&9&11&4\\ 14&1&16&2 \end{matrix} 饥饿的老鼠先吃掉,然后再吃掉最大的邻居堆,即。161616111111 3615147891个1012🐭↑5134237105681213159🐭4141↑2\begin{matrix} 3&7&10&5\\ 6&8&12&13\\ 15&9&🐭&4\\ 14&1&\color{grey}\uparrow&2 \end{matrix} 其下一个动作是,,,,,,,,和在此确切顺序。131313121212101010888151515141414999666777333 🐭↗↓↗←↙↖1个↙↑↗↑5←42🐭←↙5↗↙↑←↓↖↗4↗1↑2\begin{matrix} 🐭&\color{grey}\leftarrow&\small\color{grey}\swarrow&5\\ \small\color{grey}\nearrow&\small\color{grey}\swarrow&\color{grey}\uparrow&\color{grey}\leftarrow\\ \color{grey}\downarrow&\small\color{grey}\nwarrow&\small\color{grey}\nearrow&4\\ \small\color{grey}\nearrow&1&\color{grey}\uparrow&2 \end{matrix} 饥饿的老鼠周围不再有奶酪,所以它停在那里。 挑战 给定初始的奶酪配置,一旦饥饿的老鼠停止吃掉它们,您的代码必须打印或返回剩余的总和。 对于以上示例,预期答案为。121212 规则 由于输入矩阵的大小是固定的,因此可以将其作为2D数组或一维数组。 从到每个值都保证只出现一次。1个11161616 这是代码高尔夫球。 测试用例 [ [ 4, 3, 2, 1], [ 5, 6, 7, 8], [12, 11, 10, …
85 code-golf  matrix 

30
创建两倍于代码长度的输出
挑战 编写一个完整的程序,该程序向标准输出中写入的字节数是程序长度的两倍。 规则 程序必须将ASCII字符写入标准输出。 输出的内容无关紧要。 输出(以字节为单位)必须恰好是程序长度的两倍(也以字节为单位),除非您满足附加条件。 任何结尾的换行符都包含在输出的字节数中。 奖金 您的程序可以选择n输入数字。如果是这样,输出必须恰好是n * program length字节。您可以假设n始终为正整数。如果未提供任何输入,则n必须默认为2。 如果这样做,您可以从乐谱中减去25个字节。 最短的程序获胜。 限制条件 没有标准漏洞。 该程序必须至少1个字节长。 无需在源代码中添加不必要的空格以更改其长度。同样,评论也不计算在内。 除非您履行奖金,否则该程序不得接受任何输入。如果您确实履行奖金,则整数必须是唯一输入。 最低分(程序长度以字节为单位-奖励)获胜。 每种语言的最短答案会赢得该种语言的支持。 排行榜 这是一个堆栈片段,用于按语言生成常规排行榜和获胜者概述。 为确保您的答案显示出来,请使用以下Markdown模板以标题开头。 # Language Name, N bytes N您提交的文件大小在哪里。如果您提高了分数,则可以通过打败旧分数来保持标题。例如: # Ruby, <s>104</s> <s>101</s> 96 bytes 如果要在标头中包含多个数字(例如,因为您的分数是两个文件的总和,或者您想单独列出解释器标志罚分),请确保实际分数是标头中的最后一个数字: # Perl, 43 + 2 (-p flag) = 45 bytes 您还可以将语言名称设置为链接,然后该链接将显示在页首横幅代码段中: # [><>](http://esolangs.org/wiki/Fish), …

28
垂直折叠文字
说我有这样的文本(每个单词一行,没有空格) Programming Puzzles & Code Golf 这是没有意义的!它完全违背了物理定律。 您的挑战是要纠正这种不可能的情况并像这样折叠文本: P Prog &uzz Coderam Golflesming 因此,在任何字符下方都没有空白,但是字符保持了垂直顺序。 目的是满足要求,但使用尽可能少的源代码字节。

30
确定字符串是否为字谜
挑战 给定两个字符串,算出它们中是否都具有完全相同的字符。 例 输入值 单词,wrdo true之所以返回,是因为它们相同,但只是被打乱了。 输入值 单词,写 这返回false。 输入值 船,鸟羽 这返回 true 规则 这是规则! 假设输入将至少为1个字符长,并且不超过8个字符。 没有特殊字符,只有a–z 所有输入都可以假定为小写 测试用例 boat, boat = true toab, boat = true oabt, toab = true a, aa = false zzz, zzzzzzzz = false zyyyzzzz, yyzzzzzy = true sleepy, pyels = false p,p = true

30
我花了很多时间才能做到这一点。(YouTube评论1)
等等.....这不是拖钓。 背景 如今,在YouTube上,评论部分杂乱无章: S St Str Stri Strin String Strin Stri Str St S 其中String仅是占位符,是指字符的任意组合。这些模式通常伴随一个It took me a lot of time to make this, pls like或某种东西,并且OP通常会成功聚集许多喜欢的对象。 任务 尽管您凭借出色的高尔夫技巧在PPCG上积累了丰富的才能,但您绝对不是在YouTube评论部分发表机智的言论或引用模因的最佳选择。因此,您在YouTube上经过深思熟虑而提出的建设性评论几乎没有“喜欢”。您想要改变。因此,您可以采用上述陈词滥调的模式来实现自己的最终目标,而又不浪费任何时间手动编写它们。 简而言之,您的任务是获取一个字符串,例如s,并输出的2*s.length - 1子字符串s,以换行符分隔,以符合以下模式: (用于s=“ Hello”) H He Hel Hell Hello Hell Hel He H 输入值 单个字符串s。输入社区的默认值。您可以假设输入字符串仅包含可打印的ASCII字符。 输出量 几行用换行符分隔,构成如上所述的适当模式。应用社区的默认输出。输出中允许使用前导和尾随空白行(不包含任何字符或看不见的字符,如空格)。 测试用例 多字测试用例: Input => …

30
简单的猫程序
最常见的标准任务之一(尤其是在展示深奥的编程语言时)是实现“猫程序”:读取所有STDIN并将其打印到STDOUT。尽管这是用Unix shell实用程序命名的,但cat它的功能当然不如真实功能强大,后者通常用于打印(和连接)从磁盘读取的多个文件。 任务 您应该编写一个完整的程序,该程序读取标准输入流的内容并将它们逐字写入标准输出流。当且仅当您的语言不支持标准输入和/或输出流(大多数语言都理解)时,您才可以使用这些术语来表示它们在您的语言中最接近的等效词(例如JavaScript prompt和alert)。这些是唯一允许的I / O形式,因为任何其他接口都将在很大程度上改变任务的性质,并使答案的可比性大大降低。 输出应该完全包含输入,而没有其他内容。此规则的唯一例外是您的语言解释器不断输出的内容,例如问候语,ANSI颜色代码或缩进​​,这些输出不能被禁止。这也适用于尾随换行符。如果输入不包含尾随换行符,则输出也不应包含任何换行符!(唯一的例外是,如果您的语言在执行后绝对总是打印尾随换行符。) 只要标准输出流包含预期的输出,就会忽略标准错误流的输出。特别是,这意味着您的程序在达到流(EOF)的末尾时可能会以错误终止,前提是该操作不会污染标准输出流。如果这样做,我建议您也将无错误的版本添加到您的答案中(以供参考)。 由于这是在每种语言中而不是在每种语言之间的挑战,因此有一些特定于语言的规则: 如果您的语言完全有可能将标准输入流中的空字节与EOF区分开,则您的程序必须像其他任何字节一样支持空字节(也就是说,它们也必须写入标准输出流中)。 如果您的语言完全有可能支持任意无限的输入流(即,如果您可以在输入中遇到EOF之前开始将字节打印到输出中),则在这种情况下,程序必须正常工作。作为示例,yes | tr -d \\n | ./my_cat应打印ys 的无限流。由您决定打印和刷新标准输出流的频率,但是必须确保它在有限的时间后发生,而不管该流如何(特别是,您不能等待特定字符,例如打印前换行)。 请在您的答案中添加一条注释,说明有关空字节,无限流和无关输出的确切行为。 附加规则 这并不是要找到具有最短解决方案的语言(有些地方空程序会解决问题),而不仅仅是找到每种语言的最短解决方案。因此,没有答案将被标记为已接受。 大多数语言的提交都将以适当的预先存在的编码(通常(但不一定)为UTF-8)以字节计分。 某些语言(例如Folders)很难评分。如有疑问,请在Meta上提问。 随意使用一种语言(或语言版本),即使它比此挑战要新。专门针对此挑战提交0字节答案的语言是公平的游戏,但并不是特别有趣。 请注意,必须有一个解释器,以便可以测试提交。允许(甚至鼓励)自己为以前未实现的语言编写此解释器。 还要注意,语言也必须符合我们平时的标准编程语言。 如果您选择的语言是已经有答案的另一种(可能是更流行的)语言的琐碎变体(请考虑使用BASIC或SQL方言,Unix shell或琐碎的Brainfuck派生词,例如Headsecks或Unary),请考虑在现有答案中添加注释在其他语言中,相同或非常相似的解决方案也是最短的。 除非之前已否决它们,否则所有标准的代码高尔夫球规则都适用,包括http://meta.codegolf.stackexchange.com/q/1061。 附带说明一下,请不要在无聊的语言中打扰无聊(但有效)的答案;这些对于这个问题仍然很有用,因为它试图编译尽可能完整的目录。但是,主要是使用作者实际上必须努力打出代码的语言来提高答案的准确性。 目录 这篇文章底部的Stack Snippet会根据答案a)生成目录,a)作为每种语言最短解决方案的列表,b)作为整体排行榜。 为确保您的答案显示出来,请使用以下Markdown模板以标题开头。 ## Language Name, N bytes N您提交的文件大小在哪里。如果您提高了分数,则可以通过打败旧分数来保持标题。例如: ## Ruby, <s>104</s> <s>101</s> 96 bytes 如果要在标头中包含多个数字(例如,因为您的分数是两个文件的总和,或者您想单独列出解释器标志罚分),请确保实际分数是标头中的最后一个数字: ## Perl, …
84 code-golf  string 

30
关闭计算机!
挑战: 用您选择的编程语言,关闭在其上执行代码的计算机。 规则 不会因资源耗尽而关闭(例如:Forkbomb强制关闭) 如果需要,您可以编写仅在特定环境/ OS中工作的代码。 禁止出现标准漏洞 这是代码高尔夫球,因此赢得了最低的字节数!

30
向后打印代码-反向搜索
编写一个程序,将其自身的源代码向后打印出来,即eniuq。 得分: +50(如果您使用来自互联网的提取数据)。 +25,如果您阅读自己的源代码。 每个字符+1点 最低分获胜。 规则: 请勿使用其他文件(例如reverse.txt) 最小代码长度为两个字符。 您的程序不能是回文。
83 code-golf  quine 

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.