Questions tagged «code-golf»

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

30
做些字母雨
字母雨 任务: 基本前提是打印出输入字符串,然后根据其在(不区分大小写)字母中的位置(0索引)垂直地重复每个字符A-Z。A在位置0处因此不重复,e在位置4处因此重复4次,P在位置15处因此重复15次,!不在位置处A-Z因此重复0次,等等。 为了清楚起见,超出范围的任何内容B-Zb-z(例如数字或特殊字符)将不会重复,因此只会出现在第一行。 这是代码高尔夫,因此每种语言中最短的解决方案是获胜者。 输入: 输入将使用标准的可打印ASCII字符集,从32 到126 ~。 输入字符串的长度为1个字符或更长。 不会有任何前导或尾随空格。 您可以将输入作为字符串("hello")或字符列表(["h", "e", "l", "l", "o"]) 例子: 输入的aaaa给出: aaaa 输入的abcda给出: abcda bcd cd d 输入Programming Puzzles & Code Golf!,得到: Programming Puzzles & Code Golf! Progr mming Puzzles Code Golf Progr mming Puzzles Code Golf Progr mming Puzzles ode Golf Progr …

30
计算科拉科斯基序列
这是旧挑战的转折,以便将I / O要求调整为我们最近的标准。这样做是为了允许更多的语言参与有关此流行序列的挑战。有关重新发布的讨论,请参见此元发布。 Kolakoski序列是一个有趣的自引用序列,荣幸地成为OEIS序列A000002(比A000001更易于理解和实现)。序列以1开头,仅由1 s和2 s组成,序列元素a(n)描述序列中第n轮1 s或2 s 的长度。这唯一地定义了序列(具有下面的运行可视化): 1,2,2,1,1,2,1,2,2,1,2,2,1,1,2,1,1,2,2,1,2,1,1,2,1,2,2,1,1,2,1,1,2,... = === === = = === = === === = === === = = === = = === === = === = 1, 2, 2, 1,1, 2, 1, 2, 2, 1, 2, 2, 1,1, 2, 1,1, 2, 2, 1, 2, …

17
填写扫雷线索
扫雷(Minesweeper)是一种流行的益智游戏,您必须在不单击这些图块的情况下发现哪些图块是“地雷”。每个图块要么是地雷(用表示*),要么是线索,即从0到8的数字表示在8个相邻图块中有多少是地雷。今天的任务是拿一个包含地雷的板子,并填写所有线索。例如,看下面的5x4板,有5个地雷: * * * * * 填写线索后,董事会将如下所示: 2*211 *33*1 12*32 0112* 细节 您必须编写一个完整程序或一个函数,该函数接受仅包含空格和星号的字符网格,并输出另一个网格,其中每个空格都用相邻的地雷(星号)替换。这些是您的网格可接受的格式: 带有换行符的字符串 二维字符列表/单个字符串 字符串列表 您可以假定网格至少为 1x1,尽管可能是所有地雷或所有空间。 输入网格将始终填充适当数量的空格。像往常一样,这是代码高尔夫球,因此存在标准漏洞,并且以字节为单位的最短答案为胜! 样品IO 为了看到空白,我将显示所有带有括号的示例IO。 Input: [ * ] [* ] [ ] [ ] [ ** ] [ * * ] Output: [1101*1] [*10111] [110000] [012210] [12**21] [1*33*1] Input: [****] [****] Output: [****] …

22
丹尼斯数字2.0
PPCG用户和当选mod,@ Dennis成为有史以来第二个收入超过10万的用户! 这是一个完全原始的想法,我没有从其他任何人那里得到,但是让我们根据他的用户ID进行挑战,12012以示敬意! 查看它,您会注意到他的ID有两个不同的“部分”。 12 和 012 这两个部分的总和为3。这是一个非常有趣的属性。 让我们将“ Dennis 2.0数字”定义为任何正整数,其中严格增加的数字的每个最大子序列加总为相同的数字。例如, 123 是Dennis 2.0的数字,因为只有一个严格增加数字的最大子列表,它的总和为6。另外,2,846,145也是Dennis 2.0的数字,因为三个增加的数字最大子列表,即 28 46 145 总计为10。此外,仅重复相同数字的数字必须是Dennis 2.0数字,因为例如777可以细分为 7 7 7 其中明确所有总和为7。 一些诸如42是不一个丹尼斯2.0数量,因为它被分解成 4 2 显然,它们的总和并不相同。 挑战 您必须编写程序或函数来确定给定数字是否为Dennis 2.0数字。您可以采用任何合理的输入格式进行输入和输出,例如从文件,函数参数/返回,STDIN / STDOUT等中以字符串,数字形式输入,然后如果该数字是Dennis 2.0 ,则返回真实值。数字,如果不是,则为假值。作为参考,以下是每个Dennis 2.0编号(最多1,000个): 1 2 3 4 5 6 7 8 9 11 12 13 14 15 …

30
转换YYYYMM到MMMYY
基于这个SO问题。 挑战非常简单:给定日期格式的日期,将YYYYMM其以格式输出MMMYY。 规则: 输入将是数字或正好6个字符长的字符串,仅由数字组成。 后两位数字介于01和之间12。 输出必须采用形式MMMYY,其中MMM代表月份的大写三字母代码(以下),并YY代表输入部分的最后两位数字YYYY。 带有相应代码的月份列表: MM MMM 01 JAN 02 FEB 03 MAR 04 APR 05 MAY 06 JUN 07 JUL 08 AUG 09 SEP 10 OCT 11 NOV 12 DEC 例子: Input Output 201604 APR16 200001 JAN00 000112 DEC01 123405 MAY34
54 code-golf  string  date 

10
周边国家
各国在一维世界上拥有一系列领土。每个国家/地区均由数字唯一标识。可以通过以下列表来表示领土的所有权: 1 1 2 2 1 3 3 2 4 我们将一个国家的最边缘地区定义为最靠近任一边缘的两个地区。如果上述列表的索引为零,则该国家/地区1的最边缘地区位于0和4。 如果一个国家的两个最边缘区域之间的子列表包含另一个国家的所有领土,则该国家将包围另一个国家。在上面的示例中,国家/地区2最边缘地区之间的子列表为: 2 2 1 3 3 2 而且我们看到国家的所有领土3都在国家的最边缘地区之间2,因此国家2包围国家3。 一个只有一个要素的国家永远不会包围另一个要素。 挑战 以整数列表作为输入(任何格式),如果任何国家被另一个国家包围,则输出真实值,否则输出虚假值。 您可以假设输入列表是非空的,仅包含正整数,并且不会“跳过”任何数字:例如,1 2 1 5将是无效的输入。 测试用例 +----------------------+--------+ | Input | Output | +----------------------+--------+ | 1 | False | | 2 1 3 2 | True | | 2 1 …

8
这句话吗?
您应该编写一个程序或函数,该程序或函数以4个字符的字符串作为输入,并输出一个值,该值指示该字符串是否为英语单词。您可以在提供的15%的测试用例中出错。 输入详细信息: 输入是4个字符的字符串,仅包含小写英文字母(az)。 输出详细信息: 如果输入是英文单词,则应输出布尔值true或整数1。 如果输入的不是英语单词,则应输出布尔值false或整数0。 词表 4个字母的英语单词列表(2236个单词) 4个字母的非单词字符串(2236个字符串)列表 非单词列表包含统一随机生成的字母序列,其中已删除了真实单词。 测试中 您的程序或函数在给定单词列表上所犯的错误总数不应超过15%。这意味着您可以为4472个提供的输入中的670个提供错误的输出。 您也应该发布测试程序或功能,以便其他人可以检查您的答案。测试程序的时间不计入提交分数。 不允许出现标准漏洞。 您的程序不应使用任何外部资源,例如访问Web或从文件读取。 这是代码高尔夫球,因此最短的程序或函数会获胜。

30
打印N-bonacci序列
这不是很广为人知,但是我们称之为斐波那契数列 1, 1, 2, 3, 5, 8, 13, 21, 34... 实际上称为Duonacci序列。这是因为要获得下一个数字,您需要将前两个数字相加。还有Tribonacci序列, 1, 1, 1, 3, 5, 9, 17, 31, 57, 105, 193, 355, 653, 1201... 因为下一个数字是前三个数字的总和。和Quadronacci序列 1, 1, 1, 1, 4, 7, 13, 25, 49, 94, 181, 349, 673... 和每个人都喜欢的Pentanacci序列: 1, 1, 1, 1, 1, 5, 9, 17, 33, 65, …

27
生成字词
标识是对哈希值的直观描述,通常由几何形状的对称排列制成。您的默认Stack Exchange头像是一个identicon。挑战在于创建“ wordenticons”,即简单的基于文本的identicon图标版本,适用于小写字母(即单词)字符串。 挑战 编写一个接受字符串S并输出其wordenticon的程序或函数。S保证为非空,并且仅包含小写英文字母字符az。您可以选择假设S具有尾随换行符。 S的wordenticon是文本的正方形网格,其边长2*length(S)由空格( ),竖线(|)和横线(―)组成。 要生成S的词​​对像,形成一个正方形网格,其中每一列对应于S的一个字母(按从左至右的正常阅读顺序),每一行对应于S的一个字母(按从上至下的正常阅读顺序) )。 例如,如果S是food我们的初始网格, food f.... o.... o.... d.... 在哪里.只是一个占位符。 对于.网格中的每个空白点(每个): 如果列字母来排字母之前按字母顺序,替换.用|。 如果列字母来排字母后按字母顺序,替换.用―。 如果列和行字母相同,则.用 (空格)替换。 这是food每个步骤之后的示例: 添加|的: food f...| o|..| o|..| d.... 添加―的: food f.――| o|..| o|..| d―――. 添加 的: food f ――| o| | o| | d――― 要完成单词输入法,请删除包含单词的多余行和列 ――| | | | | …

30
迷信酒店电梯
描述 这是上海一个非常迷信的酒店电梯: 它避免使用数字13,因为在西方世界中有13位不幸,而避免使用数字4,因为在亚洲部分地区,有4位不幸。如果这家酒店更高,该怎么办? n从STDIN 读取一个代表楼层数的正整数,并打印按钮布局到STDOUT:的样子-1,然后是下一个n-1不等于13并且不包含数字4的正整数。两列中的数字,如上图所示:每行打印两个楼层号,并由水平制表符分隔,以便从左到右以相反的顺序读取行会产生升序的序列。(您也可以选择打印尾随换行符。) 测试用例 对于input 14,输出应如上图所示: 15 16 11 12 9 10 7 8 5 6 2 3 -1 1 其中每行的空白是单个水平制表符。 对于输入2,您应该打印-1 1。 对于输入100,您应该打印: 120 121 118 119 116 117 113 115 111 112 109 110 107 108 105 106 102 103 100 101 98 99 96 97 …

30
输出您的分数!
挑战: 这个概念很简单:编写一个完整的程序以输出其自己的代码高尔夫球得分! 输出应仅是程序的字节数和结尾 bytes。 但请等待 ...有一个限制: 您的源代码不能包含字节数中的任何数字 因此,如果您的分数是186 bytes,则您的程序不能包含,或字符1。68 示例输出: 315 bytes 27 Bytes 49 BYTES 附加规则: 源代码中禁止使用不必要的字符,空格和换行符,但是在输出中完全可以接受结尾的空格和换行符 数字和bytes输出之间应该有一个空格 字母不区分大小写 无需自我检查或阅读源代码 不允许出现标准漏洞 这是代码高尔夫,所以 以字节为单位的最短代码胜出!

30
哪个围棋等级更高?
传统棋盘游戏Go的玩家使用等级系统衡量他们的技能: 新加入该游戏的玩家排名第30kyū(书面30k),并递减至第1kyū(书面1k)。这些被认为是学生等级。 玩家可以从第1推动圭以1 丹等级(书面1d),然后进度上数到第七丹等级(书面7d)。这些是大师级的队伍。 过去非常熟练的运动员7d可以晋升为第一职业丹等级 1p,并逐步增长到第九职业丹等级(书面9p)。这是最高等级。 简而言之:等级是有序的30k < 29k < ··· < 1k < 1d < 2d < ··· < 7d < 1p < 2p < ··· < 9p。 任务 鉴于中两个字符串{ 30k,... 1k,1d..., 7d,1p,... 9p}作为输入,输出更高的两个级别。(如果它们相等,则只需输出其中一个输入。) (通常,I / O是灵活的,您的答案可以是函数或完整程序,可以以任何合理的方式读取输入并以任何合理的方式产生输出。) 这是代码高尔夫球:目的是最大程度地减少代码的字节数。 测试用例 (格式:input1 input2 output。) 29k 9k 9k 21k 27k 21k 6d …
53 code-golf  string  go 

23
确认光明会
Illuminati命令您(使用其思维控制)输出以下字符串: ^ /_\ /_|_\ /_|_|_\ /_|/o\|_\ /_|_\_/_|_\ /_|_|_|_|_|_\ /_|_|_|_|_|_|_\ /_|_|_|_|_|_|_|_\ /_|_|_|_|_|_|_|_|_\ 规则: 每行都允许尾随空格。 每行中必须有前导空格。 在完整的所需输出之后,允许尾随空格。 由于这是一个代码高尔夫挑战赛,因此获胜者将是最短的节目,以字节为单位。 由于这是一个kolmogorov复杂性挑战,因此可以使用硬编码输出。 适用标准漏洞。 更新:您可以使用制表符代替空格,每个制表符计为4个空格。如果您出于某些原因想要。 沙盒(我会在沙盒常见问题解答建议的整个72小时内保留它,但要有7个支持票,并且几乎没有负面反馈,应该38个就可以了)

30
长度相同,字符串不同
挑战 给定一个非空字符串小号长度的大号完全由可打印的ASCII字符的,输出长度的另一个字符串大号即完全由可打印的ASCII字符,但不等于小号。 出于此挑战的目的,可打印的ASCII字符是U + 0020和U + 007E(含)之间的一个字符;也就是说,从 (空间)到~(波浪号)。不包括换行符和选项卡。 例如,给定"abcde",一些有效的输出可能是: "11111" "abcdf" "edcba" 但是这些将是无效的: "abcde" "bcde" "abcde0" 测试用例 "asdf" "1111" " " "~~~~~" "abcba" "1" " " "~" " ~" "~ " " 0" "!@#$%^&*()ABCDEFGhijklmnop1234567890" " !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~" 规则 您可以假定输入完全由可打印的ASCII字符组成。 您可能不会假定输入不包含所有95个可打印字符。 您可能假设输入内容至少包含一个字符,且长度少于256个字符。 输出还必须完全由可打印的ASCII字符组成。例如,您无法为input输出字节\ x7F "~"。 输出必须与输入1的概率不同;也就是说,您可以生成随机字符串,直到一个字符串与输入字符串不同为止,但是您不能仅输出L个随机字符并希望它与众不同。 输出中不允许使用换行符,但是您可以输出一个尾随的换行符,该换行符不计入字符串。 计分 这是代码高尔夫球,因此每种语言中以字节为单位的最短代码获胜。
53 code-golf  string 

30
任意长度弯曲
编写一个函数,该函数f接受一个正整数并返回一个函数。 返回的新函数应与相同f。但是,当“终止调用”发生时,f应该返回所有传递的整数之和。 例如,g=f(4)(如果f是第一个功能)应设置g为另一个功能。h=g(3)会做同样的。但是,当您h不带任何参数调用时(请参见下文以了解详细信息),它应该输出7,因为这是以前的函数参数的总和。换句话说f(3)(4)() == 7。 请注意,这与f(3,4)()。 “终止呼叫”是以下选项之一(您的选择): 不带参数调用 null作为参数 任何非正值 应该支持任意数量的函数调用,没有预定义的限制。 保证总和不会超过1000。 我们可以假设在“终止呼叫”之前至少进行了一次呼叫。 您的代码不应使用静态的,针对每个程序的变量,因此应该可以在同一运行时中多次运行实验,并观察到完全相同的行为。 例子: f(1)() == 1 f(4)(2)(7)() == 13 f(4)(2)(7)(5)(2)() == 20

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.