Questions tagged «code-golf»

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

2
面部识别
此任务的目的是识别,清理和标记任何给定“图像”中的所有面孔。 脸上是什么? 人脸将是ZxZ正方形,其中Z是大于1的奇数整数。左上角和右上角以及中心将是'O'字符,而底线将是一个'\'和一个'/'足够包围'_'字符填充其余行。例子: 3x3的脸: O O O \_/ 5x5的脸: O O O \___/ 7x7的脸: O O O \_____/ 等等 输入项 输入将在STDIN上,并且将由多个等长的字符串组成。 输出量 输出应该是输入,所有可识别的面部都被清除(即,除了眼睛,鼻子和嘴巴以外的所有字符都应从面部的范围内删除)并装箱(由+,-和|字符包围)。当两个或更多的脸重叠时,应将其清除并装箱,但应优先处理较大的脸(应放在最上面);如果两个面孔的大小相同,则优先级由实施者决定。如果输入没有面孔,则输出应与输入相同。 一些例子 输入: ******* ******* **O*O** ***O*** **\_/** ******* ******* 输出: ******* *+---+* *|O O|* *| O |* *|\_/|* *+---+* ******* 输入(不完整的面孔): ******* ******* **O*O** ******* **\_/** ******* …

30
输出序号(第一,第二,第三)
我想生成(作为函数的返回结果,或仅作为程序的输出)与数字连接的正整数的序数后缀。 样品: 1st 2nd 3rd 4th ... 11th 12th 13th ... 20th 21st 22nd 23rd 24th 依此类推,后缀每10个重复最初的1-10个子模式,直到100个,该模式最终重新开始。 输入将是数字,输出将是如上所示的序数字符串。 最小的算法是什么?

30
画一个Sierpinski三角形
Sierpinsky三角形是通过截取三角形,将高度和宽度减小1/2,创建3个所得三角形副本并将每个三角形与其他两个三角形接触的方式创建的分形。如下图所示,对生成的三角形反复进行此过程,以生成Sierpinski三角形。 编写程序以生成Sierpinski三角形。您可以通过绘制实际三角形或使用随机算法生成图片来使用想要生成图案的任何方法。您可以绘制像素,ascii艺术作品或任何您想要的东西,只要输出看起来与上面显示的最后一张图片相似即可。最少的角色获胜。

3
克莱因地形学
克莱因(Klein)是我设计的2D语言,可以嵌入12种不同的拓扑表面。通过更改命令行参数,可以在不同的表面上运行Klein程序。 拓扑确定指令指针离开程序边缘时的位置。当移出边缘时,ip将跳至具有匹配颜色的边缘,并保持其相对于箭头的位置,即指针将保留其与箭头的距离。 例如topology 000,大多数2D语言使用的topology ,当离开边缘时,会使指令指针环绕到另一侧。 任务 任务非常简单,编写一个Klein程序,该程序在运行时将输出其运行所在的拓扑。各个数字可以用空格分隔。(例如000和0 0 0都是允许的输出)。您可以选择使用或忽略-A命令行标志,如果使用它不会花费您的字节数。 这是代码高尔夫球,所以最短的答案将是赢家。 这是一个在线测试驱动程序,可用于一次测试所有拓扑。要以整数模式运行,请删除-A。

20
莎士比亚编程语言中的高尔夫技巧
您对莎士比亚编程语言的高尔夫有什么一般提示?我正在寻找可以应用于代码高尔夫球问题的想法,并且这些想法至少也特定于SPL(例如,“删除注释”不是答案)。 请为每个答案发布一个提示。
43 code-golf  tips 

16
正则表达式高尔夫的提示
类似于我们针对特定语言的高尔夫技巧的主题:缩短正则表达式的一般技巧是什么? 在打高尔夫球时,我可以看到正则表达式的三种用法:经典的正则表达式高尔夫(“这里是一个应该匹配的列表,这里应该是一个失败的列表”),使用正则表达式来解决计算问题并将正则表达式用作其中的一部分较大的高尔夫球代码。随时发布解决任何或所有这些问题的技巧。如果您的小费仅限于一种或多种口味,请在顶部注明这些口味。 像往常一样,请为每个答案坚持一个提示(或一系列密切相关的提示),以便最有用的提示可以通过投票升至最高位置。

30
CJam高尔夫技巧
CJam是一种受GolfScript启发的基于堆栈的高尔夫语言,由PPCG用户aidtsu创建。 因此,就其他特定于语言的提示问题而言: 您在CJam打高尔夫球有哪些一般秘诀?请为每个答案发布一个提示。
43 code-golf  tips  cjam 

15
这台Foo机器会停止吗?
众所周知,确定Turing机器是否停止运行还不确定,但是对于较简单的机器而言并不一定如此。 甲富机是一台具有有限带,其中在磁带上的每个小区具有整数或halt符号h,例如 2 h 1 -1 指令指针从指向第一个单元格开始: 2 h 1 -1 ^ 在每一步中,指令指针都向前移动其指向的数字,然后取反该数字。因此,经过一步,它将向前移动2单元格,并将其2变为-2: -2 h 1 -1 ^ Foo机器会继续执行此操作,直到指令指针指向暂停符号(h)。因此,这是该程序的完整执行: 2 h 1 -1 ^ -2 h 1 -1 ^ -2 h -1 -1 ^ -2 h -1 1 ^ -2 h 1 1 ^ 磁带也是圆形的,因此,如果指令指针从磁带的一侧移开,它将移到另一侧,例如: 3 h 1 3 ^ …

23
解析Bookworm词典格式
我最近以Bookworm Deluxe的形式沉迷于某种怀旧: 如果您以前从未看过它,那么这是一个文字游戏,目标是将相邻的图块连接起来以形成单词。为了确定字符串是否为有效单词,它会根据内部字典检查它,该内部字典以如下所示的压缩格式存储: aa 2h 3ed ing s 2l 3iis s 2rdvark 8s 4wolf 7ves 解开字典的规则很简单: 阅读该行开头的数字,并从前一个单词的开头复制那么多字符。(如果没有数字,请复制与上次一样多的字符。) 在该词后附加以下字母。 因此,我们的第一个单词是aa,其后是2h,表示“复制的前两个字母aa并附加h”,形成aah。然后3ed变为aahed,并且由于下一行没有数字,因此我们再次复制3个字符以形成aahing。该过程将在字典的其余部分继续进行。小样本输入得到的结果是: aa aah aahed aahing aahs aal aaliis aals aardvark aardvarks aardwolf aardwolves 您面临的挑战是如何以尽可能少的字节执行此拆包。 输入的每一行将包含零个或多个数字,0-9 后跟一个或多个小写字母a-z。您可以接受输入并将输出作为字符串列表,或作为单个字符串,且单词之间用0-9/ 以外的任何字符分隔a-z。 这是另一个小测试用例,示例中未涉及一些边缘情况: abc cba 1de fg hi 0jkl mno abcdefghijk 10l => abc cba cde cfg …
42 code-golf  string 

4
f(g(x))减小而g(f(x))增大
为此,您需要在整数上实现两个函数f和g,使得f∘g是严格减少的函数,而g∘f是严格增加的函数。换句话说,如果取任意两个整数a <b,则f(g(a))> f(g(b))和g(f(a))<g(f(b))。f和g分别没有限制,只不过它们必须分别将一个整数映射到另一个整数。 请提供对f和g的简短描述,以及有关为什么它们具有必需属性的参数。 信用:这项挑战的灵感来自2011年罗马尼亚数学硕士竞赛中的一个问题(该问题提出了相同的问题,但用实数而不是整数)。如果您真的想要破坏者,那么现在您知道要搜索什么。 规则 应该从将一个整数映射到另一个整数的数学意义上来理解此挑战中的“函数”一词:您可以编写两个程序或两个函数,并像往常一样使用接收和提供输出的任何标准方法。您可以使用整数的字符串表示形式来代替实际的整数变量,但是输入和输出的类型应该相同,以便可以在不手动转换类型的情况下组成函数。请记住,从概念上讲,f和g仍需要是ℤ上的函数,因此您不能通过使用相同数字或类似形式的两个不同的字符串表示形式作弊。 请记住,函数可以是未命名的,只要它们本身或您定义的另一个函数不需要它们的名称即可。如果您确实命名了这两个功能中的一个或两个,则可以假定它们存在于同一程序中,因此它们在实现中可以相互引用(例如,def f(x): return -g(x)在Python中)。 通常的整数溢出规则适用:您的解决方案必须能够在语言的假设(或实际)版本中使用任意大整数,默认情况下,所有整数都是无界的,但是如果您的程序由于实现而在实践中失败不支持大整数,这不会使解决方案无效。 您可以使用任何编程语言,但是请注意,默认情况下,这些漏洞是禁止的。 这是代码高尔夫球,因此您的得分是两个函数的字节数之和与最短有效答案的总和。

27
告诉我最近的恶魔
恶魔数字是一个正整数,其十进制表示形式仅包含6。恶魔数字列表以6、66、666、6666开头。 给定正整数,输出最接近的恶魔数字。如果有两个,则输出较大的一个。 测试用例: n output 1 6 2 6 3 6 6 6 35 6 36 66 37 66 100 66 365 66 366 666 666 666 999 666 这是代码高尔夫球。以字节为单位的最短答案将获胜。

30
我是工程师吗?
最近,一名研究交通信号灯正时的电气工程师被俄勒冈州称为自己的工程师,被罚款500美元。 给定一个2个字母的字符串作为输入,代表美国的州,输出: I am not an engineer如果州是俄勒冈州(OR) I am an engineer 如果该州是美国的任何其他州 What is an engineer? 得到任何其他输入 输出可能不包含任何前导空格,但可以包含所需的尾随空格。 您可以假设输入将始终是2个大写字母。 以下是美国所有50个州缩写的列表: AL, AK, AZ, AR, CA, CO, CT, DE, FL, GA, HI, ID, IL, IN, IA, KS, KY, LA, ME, MD, MA, MI, MN, MS, MO, MT, NE, NV, NH, NJ, …

2
监狱建筑师,ASCII版本
这是使用ASCII字符的监狱图: +------------------------------+ | | | X X | | | | D D | | | | | | X X X | | | +------------------------------+ 墙是由管道字符|,破折号-和+用于拐角和相交的支柱组成的。还有两扇标有的门D(将始终在左右墙壁上)。监狱里充满了带有标记的恐怖人物X。 目标是建造满足以下条件的墙: 每个人都被单独监禁; 两扇门之间有一条走廊。 每个单元仅包含一个直接连接到主要走廊的门。 牢房和走廊占用了监狱中的所有空间。 每个单元格包含一个人(即,没有空单元格)。 走廊是一条路径,不会分支,并且始终是一个字符宽。这是上述监狱的解决方案: +---------+--------------------+ | | | | X | X | | | +--------+ +------D--+-----D-----+ D D +---D--+ …

14
没有任何附加条件!
介绍 墙上有3个钉子。您已经获得了一条固定在相框两端的绳子。要挂起图片,您需要用钉子将绳子缠住。但是在放开图片之前:您可以仅通过查看字符串如何缠绕在指甲上来预测图像是否会掉落吗? 在第一个示例中,图片不会掉落。在第二个示例中,图片将下降。 挑战 给定绳子绕N钉子的路径,确定图片是否会掉落。如果图像将要下降,则返回真实值,否则返回虚假值。 细节 您可以假定钉子和图片以N+1正三角形排列,图片在底部。 您可以假设绳索上没有打结,即可以从两端之一连续包裹绳索。 每个钉子都用字母顺时针枚举。您可以假设最多有26个钉子(AZ)。 用小写字母表示围绕钉子的顺时针包装,用大写字母表示逆时针包装。 上面的第一个示例将编码为BcA,第二个示例将编码为CAbBac。 对于倾斜的读者:这个问题等同于确定自由组的元素(由钉组生成)是否是标识。这意味着重复取消像aA或Aa直到达到固定点的子字符串就足够了。如果定点是空字符串,则这是中性元素,否则不是。 例子 Picture will fall: Aa CAbBac aBbA DAacAaCdCaAcBCBbcaAb ARrQqRrUuVHhvTtYyDdYyEKRrkeUWwua AKkQqEeVvBESWwseYQqyXBbxVvPpWwTtKkVHLlWwNBbAanYYyyhWwEJZUuNnzjYyBLQqQqlEGgebeEPLlTtZzpUuevZzSsbXSGgsUuLlHhUQquPpHUuFfhTZzIitGgFAaBRrBbbYXxOoDZTDdtzVvXxUudHhOVvoUuXKkxyBEeLlbFfKkHhfVAaQqHAaJjODdoVvhSsZzMZzmPpXNBbnxBbUuSSsUuDRrdNnUusJDIiUuIidCEGgeMmcLlDPOopdTEeQqCAETtNnYyeGUuPEFfSsWwHheAaBbpgCcOHUuhAaCcoEFBbfeaFHhfcCFFffNncGFfgtjMVUuKAakvKkXxLlTMmtmOFfoUuXSsYZzLXxlyxUuRPZzTtprSsWwRrPLlpGgMmKRrDHhdRCcUurYNnKCckykXJjxWwUSsJjKkLlKkuBbBbOoWwWwIiUuPDdBbCcWHBbCFfcDdYBbLlyVvSsWGgEewCchDdYywAaJjEepPpPpQXxZzFfLGXxglNnZzYDdyqCcKWXxwXxQqXTtxkFfBSSAasTFftZzsXGgxSsLlLlbZzAaCCccXVvYyxTIiOoBbFftCVQqDdBbGgAavQqKkDPpKTCctRrkdcvAaQWOowLOolqVMmvZAaHCBbcPphIiRKkrLlzFMOomDIiXJjIixMmdNnMHhmfNTtIiKkSDdTtsVvHhnAaNSVvTUutNnXxsGIiXxPpPHhUupgNnAaAAOoaaIiHJjhVvLlnYyXxQqSsTtKJjkBbNnVvEYCcFfMHGghBbmNnEeJTtjJjWYywyeNWwDIiZYyzOodnMQqmVvCcQqxVvGNnEeNBbngVvUGgYyBbDdVvIiAAaauPpQKDdEekNnVLlvHhGSDIidPZzpsPCcpgQqKkQqNOonLlIiLlJjqPAaPXxTtppYyCPpHhCIicARBbracXxWwXEVUuUuGgZHhzBSsbvGgFfeVvxLlNKknWwBLlIibWOowNnRSsrSEeKAakOosLZzZRrHhzTtTFfUuNnOKkotXxTtla Picture will not fall: A BcA ABCD aBaA bAaBcbBCBcAaCdCaAcaCAD ARrQqRrUatuVHhvTYyDdYyEKRrkeUAua AEEeQqNneHhLlAIiGgaECXxcJjZzeJFfVWwDdKkvYWwyTJjtCXxANIinaXWwxcTWwtUuWwMmTBbVWIiFLlWwZzfwPLlEepvWZzwKkEYEeWXxwySXTtEexRIiNBbnWAaTtQqNnBMSsWwOombwWwPVPpGPpgYyvDdpBbrQqHhUusKRrDAVvadLlWwOZzokGJCXSSssXxxJPpGIigZzjJjLlOoNRrnPpcMZzmjgJjNDEeQqWKkNTtnSswIidCcnYBGgbyJSsjPpIiMmMmMmSNnWVvwZzIQqLXHhxTPptlisOoeTtTtYMmVvPpyKNnMFfmkXxSVvsCGJjXxgXYJPpjWwQIiXxqyDdxFfDdAaRNnJjrctHBbZzhEQqMmeCcRBbrGgAaAaJNnRrYyWwSDdVvsJOojQGgWWwIBbiwRrqJjjWwOoFPMmDdRrQOoqNnRrDPJjpMmdPpGFfVvWUuwgpWCcNnPpwfUXCcZzJjUSsuXxxUuuRGgHhrSQqJjOosMMTtmHhmKkXxDdLlWwjSUuAaMmKYyksZzVvPZzVEeVvvHhZZOozBbzMmZCczYyGgISsiQqpXxMmXxEMmeRrAGgaGgMOGgomZFfDdzSSssBGPpgbTtBbOoRWWwGgLJjlEeGgLDdRrUulNnZzJjJjUKkuXxFfwATtaZzLVvlWwSsMmrBAaELleGBLFflbgHhbIFfiBbPpTWZzwKkKLASsaTJYyjtBbBbWwIiZCcWwzIiZLlUTtuBbYyBbIizTJjtLTtDOOoBbodBbllSsUGgLlAKkauYykUuUNnPpuDFfAaLNVvnVvlHhdMmBAaBbIiVRrGWOoPpwgWXwKkvJjOoTtYCUucVGgYyLlVvFfvRrMmySsDdbtICZzcNnINSOosDQAaXoxRGgKkrqdZznDdXxZzMGgmiJjNnACcMQqmaNnWZzUOuwTVvAJjSsaRrGgSsTtOMmRroVvRrtAVGgvMmaINniDGCcOogRrWwMVvYFfyTtmTtVvOoOIiodRrGgAxaSsGgiJja

11
更多牛铃……!
您提供技术支持的布鲁斯·迪肯森,他产生了蓝牡蛎崇拜记录会话。当他要更多牛铃时,您可以给他。 你的任务 编写一个程序或函数,该程序或函数将字符串(或您的语言中的等效字符串)作为输入,并输出一个包含一个以上牛铃的相关字符串。 一个琴弦包含多少个牛铃? 字符串包含的牛铃数量等于通过排列字符串的字符可获得的“牛铃”不同副本的最大数量。例如,"bbbccceeellllllooowwwwwwwww"包含3个牛铃,而"bbccceeellllllooowwwwwwwww"和"bbbccceeelllllooowwwwwwwww"分别包含2个牛铃和"cowbel"0个牛铃。 输出应如何与输入相关? 输出应按此顺序包括输入字符串的级联和增加牛铃数量所需的输入字符串的最短前缀。 例如,"bbbccceeelllllooowwwwwwwww"只需要一个"l"即可容纳3个牛铃而不是2个;包含的最短前缀"l"是"bbbccceeel"。因此,如果输入为"bbbccceeelllllooowwwwwwwww",则输出应为"bbbccceeelllllooowwwwwwwwwbbbccceeel"。 技术性 您可以假定输入仅包含可打印的ASCII字符。如果有一个或两个令您的语言的字符串处理令人讨厌的字符(例如换行符或\),则可以假定输入中不包含这些字符,只需提及此限制。 您可以进一步假设输入中的字母字符全部为小写或全部为大写。如果您不选择其中之一,则不区分大小写计算牛铃。 您可以进一步假设输入包含每个字符的至少一个拷贝b,c,e,l,o,和w。这等效于假定可以将字符串的某些前缀连接到该字符串以产生包含更多牛铃的字符串。(请注意,输入字符串本身不必包含牛铃。) 如果您的语言具有可解决此问题的内建函数...则认真地使用它,真是太棒了。 镀金尿布 由于录制工作室的时间很昂贵,因此您的代码必须尽可能短。字节最少的条目是赢家! 测试用例 (pastebin链接使复制/粘贴更加容易) 测试输入#1: "christopher walken begs for more cowbell!" 测试输出#1: "christopher walken begs for more cowbell!christopher wal" 测试输入2: "the quick brown fox jumps over the lazy dog" 测试输出2: "the quick brown fox jumps over the …
42 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.