Questions tagged «code-golf»

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

27
密码化字符串
您的挑战是密码字符串!您问什么是密码? 以字符串作为输入。该字符串将仅包含大写字母,小写字母,数字和空格。 您必须用下划线替换所有空格,并按从左到右的顺序将所有数字移动到字符串的末尾。然后,对于字符串中的每个字母,将其随机更改为大写或小写。 示例(字符大小写每次都不同): Input Hello world Output HElLo_wORld Input pa55 w0rd Output pA_Wrd550 Input 14 35 Output _1435 Input 0971 Output 0971 Input [space] Output _ 以字节为单位的最短代码胜出! 谁在Information Security SE上问这是否是一个好的哈希算法,那会取胜!-不用担心SE霸主,我只是在开玩笑。

19
反函数
如果编程功能可以像它们实现的数学功能一样反转,那不是很整洁吗? 编写一个函数(或程序),以x任何形式输入一个输入,然后输出ln(x)。 当对程序字节进行重新排序/反转,以便第一个字节现在是最后一个字节时,它应采用x任何形式的一个输入并e^x取而代之。 您的答案必须至少包含3个正确的有效数字。 近似值可以,只要它们具有至少3个正确的有效数字即可。 您的代码向前和向后都必须使用相同的编程语言。 假设这个程序实现了ln(x): abc你好 然后该程序必须实现e^x: \xBD\xA5\xE5\xA0\xBD\xE4cba 如果您使用的语言没有浮动支持,则为金星。 这是代码高尔夫球的一种怪异形式,因此最短的程序为准。

6
你今年过得好吗?
介绍 圣诞老人的名字太多了,需要您的帮助!他需要你写一个程序或功能,它输出nice,naughty,very naughty或very very naughty。为了确定某人的好坏或顽皮,圣诞老人开发了一种算法: 尼斯(除法,数学): 首先,通过将所有字母加起来(忽略空格)从名称中获得一个数字。例如: Doorknob = D = 4 o = 15 o = 15 r = 18 k = 11 n = 14 o = 15 b = 2 4 + 15 + 15 + 18 + 11 + 14 + 15 + 2 = 94 …

12
您学会了fib-abc吗?
我不喜欢数字,但是我喜欢斐波那契数列。我相信我们可以解决一些问题。 请从STDIN 读取一个整数n,然后将以n为底的26的第n个斐波那契数(abcdefghijklmnopqrstuvwxyz而不是0123456789)输出到STDOUT。 第一个斐波那契数为0。第二个斐波那契数为1。第n个斐波那契数是第n -2个和第n -1个斐波那契数之和。 前32个fib-abc数字: fib(0) = a fib(1) = b fib(2) = b fib(3) = c fib(4) = d fib(5) = f fib(6) = i fib(7) = n fib(8) = v fib(9) = bi fib(10) = cd fib(11) = dl fib(12) = fo fib(13) = iz fib(14) …

30
沃森克里克回文
问题 创建一个可以确定任意DNA字符串是否为Watson-Crick回文的函数。如果该字符串是Watson-Crick回文,则该函数将获取一个DNA字符串并输出一个真值,否则返回一个假值。(True和False也可以分别表示为1和0。) DNA字符串可以全部大写或全部小写,具体取决于您的喜好。 同样,DNA字符串将不会为空。 说明 当一个DNA字符串的反向互补序列等于其自身时,即为沃森-克里克回文。 给定一个DNA字符串,首先将其反转,然后根据DNA碱基(A↔T和C↔G)对每个字符进行补充。如果原始字符串等于反补字符串,则为Watson-Crick回文。 有关更多信息,请参见此问题。这是一个不同的挑战,您必须找到DNA字符串中最长的子字符串,其中该子字符串是Watson-Crick回文。 目标 这是代码高尔夫球,最短的代码获胜。 测试用例 格式为<input> = <output>。 ATCGCGAT = true AGT = false GTGACGTCAC = true GCAGTGA = false GCGC = true AACTGCGTTTAC = false ACTG = false

12
我没看过那个号码!
编写一个程序,通过非空白字符的字符串去(你可以认为他们是数字0到9,但没有在他们要处理的方式取决于此),并根据以下规则增加了空间。 假设当前标记为空字符串,而先前发出的标记为空集。 遍历字符串的字符。对于每个字符,首先将字符附加到当前标记。然后,如果当前令牌尚未包含在先前发出的令牌集中,则将当前令牌添加到该令牌集中,并将新的当前令牌作为空字符串。 如果到达字符串末尾时当前标记为空,则按发射顺序输出先前发射的标记,并用空格字符分隔。否则,逐字输出原始字符串。 输入值 STDIN的输入应为数字序列。 输出量 程序应按照步骤3中的指定打印结果。 样品 样本输入 2015 10101010 4815162342 101010101010 3455121372425 123456789101112131415 314159265358979323846264338327950288419716939937 样本输出 2 0 1 5 10101010 4 8 1 5 16 2 3 42 1 0 10 101 01 010 3 4 5 51 2 1 37 24 25 1 2 3 4 …

10
播放``攻丝''
今天(2015年11月11日)是美国退伍军人节。“ Taps ”是在美国军事葬礼上播放的号角: (来自vtmiller的SoundCloud上的“ 轻击”) 这是一种简单的旋律,只有二十四个音符,并且仅使用四个不同的音符。这是乐谱: (来源) 挑战 编写一个程序或函数以任何常见的音频文件格式(例如MP3,WAV,MIDI)播放“ Taps”或输出“ Taps”音频文件。可以用任何键,使用任何类型的乐器或您的语言可用的蜂鸣声播放。例如,听起来可能像是钢琴,而不是军号。(尽管仍然只能使用一种乐器类型。) 必须以准确的音高,持续时间和间隔演奏所有二十四个音符。熟悉“轻击”的人应该能够运行您的代码并轻松识别正在播放的歌曲。 旋律的持续时间(从第一个音符的开始到最后一个音符的结束)必须在30到70秒之间。您可以选择在声音文件的开头和/或结尾处保留长达5秒钟的静音时间,因此最长允许80秒。 当然,您可能不只是在某处在线下载歌曲或从恰巧将其作为示例的音频库中提取歌曲。但是,您可以使用音频库来播放/编写各个音符并创建音频文件。 计分 这是代码高尔夫球,因此最短的答案以字节为单位。但是,对于这个特殊的挑战,我鼓励您不要专注于字节数,尤其是以音质为代价。充分利用您的意见书,但可以根据自己的乐器选择或声音输出方法来发挥创造力。这项挑战的目的是要表彰退伍军人,而不是要淘汰几乎无法识别的“拍击”版本。 请注意,只需将链接粘贴在空白行上,就可以将SoundCloud音频文件直接嵌入到帖子中。如果您有SoundCloud帐户,这将是共享您的输出的好方法。

5
将标签分成两半
圣战已经在空间与标签之间展开。(当然还有赢得客观上的优势的空间。)— Alex A. 小号青梅PEO p文件仍然拒绝到一个 ccept该 WHI Ç h是CL Ë阿尔利 š upreme。你刚刚收到 一个使用INCOR文件重新克拉,b广告,和INF ē的WHI rior形式牛逼协商,现在牛逼他续Ë一个文件的NTS [R Ë污染和破坏。 您决定还可以向发送文件的人显示他们的错误程度。 描述 顾名思义,您面临的挑战是获取一个包含一个或多个标签的文件: this is an evil tab onoes 无情地将它们粉碎成碎片: this is an evil tab o n o e s 请注意,Stack Exchange软件将文字选项卡转换为四个空格(因为它是正确的),因此本文中的选项卡将显示为四个空格。但是,程序的输入将包含实际的选项卡。 挑战 解决方案应采用单个字符串作为输入,其中可能包含可打印的ASCII,换行符和制表符。输入中将始终至少有一个选项卡。 输出应为相同的字符串,并应用以下规则: 在坐标(0,0)处并向右方向启动光标。坐标是(列,行),零索引,方向是打印字符后应移动光标的方向。 对于字符串中的每个字符: 如果是换行符,请移至坐标(0,n),其中n是到目前为止字符串中的换行符数目(包括该行),然后将方向重置为右。 如果是选项卡,则输出两个空格,将光标方向顺时针旋转90度,然后再输出两个空格,从而有效地将选项卡“分成两半”。这是一个可视示例,其中选项卡表示为--->,空格表示为·: foo--->bar--->baz 变成 foo··· · …

17
谁是最困的?
编写一个程序或函数,该程序或函数接受一个字符串,-=o.其中-=o'和.'始终交替出现,以字符为单位。字符串的奇数长度将大于1,且始终以之一开始和结束-=o。 基本上,输入看起来像一排表情符号脸,在各种困倦状态下共享眼睛,例如 o.=.=.-.-.o.o 您的目标是打印或返回最困或最清醒的脸部(由您选择)。如果对于谁最睡/最清醒有多种选择,则可以输出其中的任何一个。 有9个不同的面孔和5个嗜睡等级: -.- is 100% sleepy -.= is 75% sleepy -.o is 50% sleepy =.- is 75% sleepy =.= is 50% sleepy =.o is 25% sleepy o.- is 50% sleepy o.= is 25% sleepy o.o is 0% sleepy 如果它是不明确的,嗜睡百分比由计算分配1到-了完全睡着了,0.5到=一半睡着了,0到o了清醒。然后,两个眼睛值的总和除以2是百分比。 以字节为单位的最短代码获胜。 测试用例 最困的 -.- GIVES -.- =.- GIVES …
31 code-golf  string 

13
一朵花的图小花
看看这朵洋甘菊花: 漂亮,不是吗?好吧,如果我告诉你这实际上不是一朵花怎么办? 实际上,许多花(包括向日葵,洋甘菊,雏菊和其他花朵)由许多很小的花(头上的黑点)组成。这些微型花称为小花,它们以非常特殊的方式排列。 基本上,第n个小花在头状花序上的位置是(在极坐标中): 其中c = 1(请注意137.508度=黄金角。您不必使用此精确度。) 这会使小花形成称为费马螺旋的螺旋状。小花的位置也与斐波那契数字有关,但这是另一个故事。 所以,这就是挑战。给定一个整数n作为输入,计算前n个小花的位置并绘制它们。这是图形输出,因此我实际上确实希望您在某种类型的窗口中显示这些点,或者将这些点以某种常见的图像格式作为数据输出到STDOUT或文件中。除此之外,这一挑战应该相当简单。这是代码高尔夫球,因此最短的代码获胜。GLHF! 这是输出的示例图片:

30
确定数组的深度
您星期一晚上(或者世界另一半的星期二早上)的简单挑战。 您将得到一个嵌套的,可能是参差不齐的正整数数组作为输入: [1, [[2, 3, [[4], 5], 6, [7, 8]], 9, [10, [[[11]]]], 12, 13], 14] 您的任务是确定其深度,该深度是列表中任何整数的最大嵌套深度。在这种情况下,深度11就是6,这是最大的。 您可以假设所有数组都不为空。 您可以编写程序或函数,通过STDIN(或最接近的替代方案),命令行参数或函数自变量获取输入,并通过STDOUT(或最接近的替代方案),函数返回值或函数(out)参数输出结果。 只要不对实际信息进行预处理,就可以采用任何支持非矩形数组(具有不同深度的嵌套数组)的便捷列表或字符串格式进行输入。 您不得使用任何与数组形状有关的内置程序(包括解决此难题的内置程序,这些内置程序可为您提供嵌套数组的尺寸)。唯一的例外是获取数组的长度。 适用标准代码高尔夫球规则。 测试用例 [1] -> 1 [1, 2, 3] -> 1 [[1, 2, 3]] -> 2 [3, [3, [3], 3], 3] -> 3 [[[[1], 2], [3, [4]]]] -> 4 [1, …

6
编写输出其镜像级别的程序
有95个可打印的ASCII字符: !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ 在Consolas字体(默认为Stack Exchange代码块)中,某些字符在垂直对称轴周围具有镜像: 这些字符对是彼此的镜像: () [] {} <> /\ 这些字符是它们自身的镜像:(! "'*+-.8:=AHIMOTUVWXY^_ovwx|请注意空格是一个。) 这些没有镜子: #$%&,012345679;?@BCDEFGJKLNPQRSZ`abcdefghijklmnpqrstuyz~ (i,l,0,#,,可能其他字符都是自己的镜子一些字体,但我们会坚持到索拉的形状。) 如果仅用39个镜像字符制成字符串,则该字符串就是其自身的镜像,其排列方式使该字符串具有中心垂直对称线。所以](A--A)[是自身的镜子,但](A--A(]并非如此。 编写一个单行的偶数程序,该程序是其自身的镜像。当它的左半部分的N个副本已被添加到它的前面,并且已将其右半部分的N个副本添加到它的后面时,它应输出N + 1。N是一个非负整数。 例如,如果程序为](A--A)[(左半部分:](A-,右半部分:)-A)[,则: 运行](A--A)[应该输出1。(N = 0) 运行](A-](A--A)[-A)[应该输出2。(N = 1) 运行](A-](A-](A--A)[-A)[-A)[应该输出3。(N = 2) 运行](A-](A-](A-](A--A)[-A)[-A)[-A)[应该输出4。(N = 3) 。。。 运行](A-](A-](A-](A-](A-](A-](A-](A-](A-](A--A)[-A)[-A)[-A)[-A)[-A)[-A)[-A)[-A)[-A)[应该输出10。(N = 9) 等等 规则 输出到标准输出或您的语言最接近的替代产品。可能会有一个可选的尾随换行符。请勿输入任何内容。 在给定足够的内存和计算能力的情况下,该过程理论上应适用于N达2 15 -1或更高。 需要完整的程序,而不仅仅是REPL命令。 最短的初始程序(N = 0,以字节为单位)获胜。

23
对齐线!
对齐线! 给定一个字符和一个多行字符串,您的工作是填充字符串的每一行,以便它们在给定的定界符之间对齐。 例子 输入: , Programming, Puzzles And, Code golf 输出: Programming, Puzzles And, Code golf 输入值 输入将是一个多行字符串和一个字符(您将在其中对齐),您可以按照希望的任何顺序/格式使用它们。字符将每行恰好出现一次。输入的每一行长度可能不同。 输入可以通过函数参数或STDIN。 输出量 输出应以相同的字符串居中。您只能使用一个尾随换行符,而不能尾随空白。 应该用最少的空格填充输出。您不能删除输入中的任何前导空格(如果存在)。 输出可以来自函数返回或STDOUT。

2
井字游戏的最佳游戏
这个挑战是关于井字游戏,但它是在圆环上玩的。 怎么玩 要创建必要的游戏板,请首先使用常规的Tic Tac Toe游戏板。首先,通过连接左右边缘将其折叠成圆柱体。然后通过连接顶部和底部边缘将其折叠成环形。这是这种游戏板的简单可视化效果,其中包含一些操作(病漆技能!)。 井字游戏的规则与普通井字游戏的规则相同。每个玩家交替放置X和O。行,列或对角线中有3个相同符号的第一个获胜。 由于圆环很难观察到,因此我们只需将板子投影回纸上即可。现在我们可以像普通的井字游戏一样玩游戏了。唯一的区别是,您还可以用对角线中的3个相同的符号赢钱。例如,玩家1(X)赢得下一局。通过稍微改变圆环上的视图,您可以轻松看到这一点。 如果您有兴趣,可以在Torus Games的Torus上玩Tic Tac Toe 。有Windows,Mac和Android版本。 最佳游戏 在这个挑战中,人们对最佳游戏感兴趣。最佳游戏是指两个玩家都扮演最佳策略的游戏。在常规的Tic Tac Toe棋盘上,最佳游戏总是以平局结束。令人着迷的是,在环形板上总是第一个玩家获胜。实际上,在圆环板上的游戏永远不会以平局告终(即使玩家玩的不是最佳状态)。 最佳策略非常容易: 如果您可以通过放置符号赢钱,那就去做。 否则,如果对手在一行/列/对角线中有两个符号,请尝试将其阻止。否则,请执行您想要的操作。 否则,请执行您想要的操作。 每个最佳游戏都恰好由7个动作组成,这些动作可以用以下方式描述: 玩家1将X放置在棋盘上的任意位置(9个选择) 玩家2在棋盘上的任意位置放置一个O(8个选择) 玩家1将X放置在棋盘上的任意位置(7个选择) 玩家2的举动可能会被强制(1个选择),否则,他会将O放置在任何位置(6个选择) 玩家1的举动被迫(1选择) 玩家2陷入困境(玩家1可以通过两种不同方式获胜),因此玩家2必须以一种方式阻止玩家1(2个选择) 玩家1做出最后的举动并获胜(1个选择) 我们的投影板上有9 * 8 * 1 * 6 * 1 * 2 * 1 + 9 * 8 * 6 * 1 * …

30
猫叫“喵”
cat 去“喵” 我们都熟悉cat程序的概念。用户输入一些内容,它回显给用户。简单。但是cat到目前为止,我所见过的所有程序都遗漏了一个事实:cat“喵”。所以,你的任务是写一个程序,将所有STDIN到STDOUT ,除非输入是cat,在这种情况下,你的程序应该输出cat goes "Meow"。 计分 这是代码高尔夫球,因此得分是字节数,带有一些修饰符: 如果您的程序适用于除cat(例如cow: cow goes "Moo")以外的其他任何动物,则对于每个其他动物:-10 如果您的程序不使用“ cat”一词:-15 如果您的程序响应fox“狐狸怎么说”:-25 动物和声音并存: cow goes moo duck goes quack sheep goes baa bees go buzz frogs go croak 此列表上的任何其他内容均被允许。 规则 适用标准漏洞 你绝对不能写任何东西给 STDERR 您可以使用单引号/无引号代替双引号。 排行榜 这是一个堆栈片段,用于按语言生成常规排行榜和获胜者概述。 为确保您的答案显示出来,请使用以下Markdown模板以标题开头。 ## Language Name, N bytes N您提交的文件大小在哪里。如果您提高了分数,则可以将旧分数保留在标题中,方法是将它们打掉。例如: ## Ruby, <s>104</s> <s>101</s> …
31 code-golf 

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.