Questions tagged «code-golf»

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

10
两路回文闭合发生器
介绍 输入字符串的回文式闭合是可以从输入字符串中构造的最短回文,其中最终回文以输入字符串开头。 对于这一挑战,我们将考虑双向回文封闭 输入字符串的左回文闭合是从输入字符串开始的最短回文。 输入字符串的正确回文闭合是以输入字符串结尾的最短回文。 输入字符串的双向回文闭合是输入字符串的左回合或右回文中的较短者。 任务 您的任务很简单。给定一个字符串(仅由可打印的ASCII,换行和空白组成),输出该字符串的双向回文式闭包。如果打成平局,则左或右回文式封条都是有效输出。 您可以编写程序或函数,通过STDIN(或最接近的替代方案),命令行自变量或函数自变量获取输入,然后将结果打印到STDOUT(或最接近的替代方案)或将其作为字符串返回。 您可以假定输入永远不会是空字符串。 几个例子: <Input> -> <Output> "abcdef" -> "abcdefedcba" (or "fedcbabcdef") "abcba" -> "abcba" "abcb" -> "abcba" "cbca" -> "acbca" 最初的想法归功于VisualMelon,最后的想法归功于Martin和Zgarb 本文首先使用并定义了回文封闭,左回文封闭和右回文封闭这两个术语。

30
计算字符串的平均字符
任务 您的任务是产生包含字符串平均字符的字符串。结果的第一个字符是第一个字符的平均字符(即第一个字符)和两个第一个字符的第二个字符的平均值,依此类推。 什么是普通字符? 字符串是字节数组。平均字符串的可以通过计算平均字符的ASCII值的字符串,并采取相应的ASCII字符被发现。 例如,字符串"Hello!"可以写为字节序列72 101 108 108 111 33。ASCII值的平均值为533/6 = 88.833 ...,将其四舍五入为最接近的整数时,我们得到89,这是大写字母的ASCII码Y。 规则 您可以假定输入仅包含可打印的ASCII字符 输入可以从stdin读取,也可以作为命令行参数或函数参数读取 输出必须是标准输出。如果您的程序是函数,则还可以返回否则将打印的字符串。 它必须是整个程序或函数,而不是摘要 适用标准漏洞 整数按函数floor(x+0.5)或类似函数进行取整。 我怎么赢? 这是代码高尔夫球,因此获胜时的最短答案(以字节为单位)。 例子 Hello! → HW^adY test → tmop 42 → 43 StackExchange → Sdccd_ccccddd
24 code-golf  string 

23
凯撒等效
如果相应字符之间的距离(向上计数)相同,则两个字符串为“凯撒等效项”。是的,我补了这个学期。这是一个例子: “ Abc”和“ Cde”是等效的,因为 distance from a-c == 2 distance from b-d == 2 distance from c-e == 2 大写字母没有任何区别。 “ Hello”和“ World”不等同于Caesar,因为 distance from h-w == 15 distance from e-o == 10 distance from l-r == 6 distance from l-l == 0 distance from o-d == 15 “ Abcd”和“ …
24 code-golf  string 

6
砖结构稳定吗?
让我们将标准砖石表示为[__](忽略顶部开放的事实)。当这些砖块堆叠在一起时,每隔一层就会偏移一半砖块,这在砖块构造中很常见: [__][__][__][__] [__][__][__][__] [__][__][__][__] [__][__][__][__] 因此,每个砖块最多具有六个邻居,并且不可能有两个砖块直接垂直排列。 关键是这些砖的布置不是用灰泥砌成的,而只是靠重力保持在一起。因此,重要的是结构中的每个砖块都必须稳定,否则整个结构都将不稳定。 单个积木可以通过三种方式稳定: 地面上的任何砖块(最低的砖块)都是稳定的。 任何在其正下方有两个砖块的砖块都是稳定的: [__] <- this brick is stable [__][__] <- because these bricks hold it up 在同一侧上,下两面都具有砖块的任何砖块都是稳定的: [__] [__] [__] [__] <- these middle bricks are stable [__] [__] because the upper and lower bricks clamp them in [__] [__] [__] [__] …

26
用散列包围字符串
我已经在Python中做到了这一点,但似乎可以将其缩短很多: txt = input("Type something.. ") c = "#" b = " " print(c * (len(txt) + 4)) print(c, b * len(txt), c) print(c, txt, c) print(c, b * len(txt), c) print(c * (len(txt) + 4)) 因此,如果用户键入: Hello World 程序打印: ############### # # # Hello World # # # ############### …
24 code-golf  string 

14
打印所有国家代码
ISO 3166-1是定义所有国家/地区代码的标准。众所周知的两个字母的代码(US,GB,JP等)称为Alpha-2代码。 有两个字母,只有26 2 = 676个可能的代码,可以很好地排列在网格中。该表可以用作概述,以查看实际使用,保留等的代码。 这个挑战很简单:您将使用纯ASCII将这个网格的所有分配的代码打印到STDOUT,如下所示: AA AC AD AE AF AG AI AL AM AN AO AP AQ AR AS AT AU AW AX AZ BA BB BD BE BF BG BH BI BJ BL BM BN BO BQ BR BS BT BU BV BW BX BY BZ …

13
现在是西班牙时间!
我有一个简单的任务,应该相对容易通过代码来实现。您的目标是编写一个程序,该程序以HH:MM格式给出输出以西班牙语编写的时间。很多人可能不知道该怎么做,所以我将详细说明。 用西班牙语的时间是很合逻辑的。它通常遵循“ Es la / Son las(小时)y(分钟)”的模式。小时采用12小时格式,仅当小时为1(即一点钟)时才使用 “ Es la” 。分钟是一个不同的故事。如果分钟小于30,则表示为上图。但是,如果分钟超过30分钟,则将小时四舍五入并减去分钟。例如,将7:35转换为相当于“ 8小时减去25分钟”。下面将给出更多示例。可以在此处找到所需的西班牙语编号列表。有些数字带有重音符号,但并非必需。 注意:消息来源说“ uno”,但是为了语法上的正确,它应该是“ una”。到目前为止,这不应影响任何答案。 注2:同样,“ cero”不是必需的。如果您的程序输出“ Es la una”或“ Son las tres”,那对我来说很好。抱歉,这些规则更改。 规则 输入将通过STDIN或您所用语言的等效语言提供。 没有从外部图书馆阅读。 您的代码可以使用无效的输入执行任何操作。 奖金 如果您的代码添加了这些额外的短语,则为-10-“ 15”的“ y cuarto”,“ 30”的“ y media”和“ 45”的“ menos cuarto”(向上取整)。 如果您的代码可以处理AM和PM,则返回-15,并相应地返回“ de lamañana”和“ de la tarde”。 如果没有提供输入,则您的代码可以转换当前时间为-15。 计分 这是一个代码高尔夫挑战,它将由字节而不是字符来计分。 例子 输入: 8:10 …

3
用王瓷砖填充屏幕
已经证明,以下的13平方的Wang块总是不定期地对平面进行平铺。这意味着,当正方形排列成网格时,所有相邻边的颜色都相同,图案的平移将永远不会与其自身匹配。 我们将通过一个3×3网格以文本形式表示每个图块,该网格在中心和拐角处都填充有空格,数字1到5代替了边缘处的红色,绿色,蓝色,黄色,灰色。 2 2 2 1 1 1 4 3 2 2 4 3 2 1 2 1 3 2 3 2 1 3 1 3 2 4 4 4 4 4 5 4 5 5 5 5 5 5 4 3 2 3 2 3 2 1 2 1 …

7
莫尔斯解码高尔夫
我已经变得越来越警觉的空间仇和这个答案一直激励着我,以确保莫尔斯电码是从这个阴险去除空白的安全。 因此,您的任务是创建一个程序,该程序可以在删除所有空格的情况下成功翻译摩尔斯电码。 规则: 输入将是仅由破折号和点组成的字符串(ASCII 2D和2E)。对于包含任何其他字符的输入,输出是未定义的。随意使用任何适合您选择的语言的方法来接收输入(stdin,文本文件,提示用户等)。您可以假设摩尔斯电码输入仅包含字母AZ,并且不需要匹配的数字或标点符号。 输出应仅包含此词典文件中包含的单词(再次,可以使用任何方便的方法访问词典文件)。所有有效的解码都应输出到stdout,并且必须使用输入中的所有点和破折号。输出中每个匹配的单词都应以空格分隔,每个可能的解码均应以换行符分隔。您可以方便地使用大写,小写或大小写混合的输出。 如上所述,对标准漏洞的所有限制都适用,但有一个例外,如果您确实愿意,可以通过Internet连接访问要求2中引用的词典文件。URL缩短是可以接受的,我认为goo.gl/46I35Z可能是最短的。 这是代码高尔夫球,最短的代码获胜。 注意:将字典文件发布到Pastebin上后,所有行尾都更改为Windows样式0A 0E序列。您的程序可以假定行尾仅以0A,仅0E或0A 0E结尾。 测试用例: 输入: ......-...-..---.-----.-..-..- .. 输出必须包含: 你好,世界 输入: .--..-.---------..-..-----..-...--...---..--...-.... ...--.-..-.-.----......--.---.-....- 输出必须包含: 编程难题和代码高尔夫 输入: -.....--....-..-.-.-.--....-.---.---...-.----..-.- --..---.--....---...-..-.-......-...---..-.---..-- ---。 输出必须包含: 敏捷的棕色狐狸跳过了懒狗
24 code-golf  morse 

1
打印歌词“ Twinkle Twinkle Little Star”
您的目标是在演奏每个音符时将歌词打印到歌曲“ Twinkle Twinkle Little Star”上。 电脑的麦克风会听到音符。如果音符的音高(但不一定是音高)正确,请打印适当的音节。否则,什么都不做。每个音符将至少有半秒长,并且音符之间的间隔至少为四分之一秒。 使用此处提供的音符和以下歌词:(垂直线表示音节休止符。) 双| kle,双| kle,点燃的星星, 我怎么想你是什么。 在如此高的世界上 像天空中的钻石。 双| kle,双| kle,点燃的星星, 我怎么想你是什么。 音乐的录音可以在这里找到。 例 电脑听到中间的C并打印“ Twin” 它听到另一个中间C并打印“ kle”, 然后它听到另一个中间的C(错误的音符),并且什么也不做。 然后,它听到中间C上方的G并打印“双胞胎”,依此类推。 规则 标点必须如图所示。 间距必须如图所示(带有空格和换行符)。 可以将空白与上一个或下一个音节一起打印。
24 code-golf  music  audio 


15
确定字符串的拼字游戏得分和有效性
您的任务是确定给定的字符串长度是否合适,并可以用Scrabble磁贴表示,如果是,则输出每个字母的分数之和。 如果您不知道如何玩Scrabble :,则有100个磁贴,上面印有字母A–Z,以及两个可代表任何字母的通配符。每个字母都有一定数量的点,每个图块(但不一定是单词)只能使用一次。演奏单词时,将所使用的每个图块的点值相加,即为分数。由于可用的字母数量有限,因此一个单词只能将某个字母的次数与该字母具有图块+任何未使用的通配符的次数相同。拼字游戏板的大小为15×15,因此该单词的长度必须在2到15个字符之间。 有关英文版本中每个字母的数量和分数的列表,请参见下面或http://boardgames.about.com/od/scrabble/a/tile_distribute.htm(存档)。 字母数量积分字母数量积分 ------------------- ------------------- A 9 1 O 8 1 B 2 3 P 2 3 C 2 3 Q 1 10 D 4 2 R 6 1 E 12 1 S 4 1 F 2 4 T 6 1 G 3 2 U 4 1 H …

4
愿4日与您同在!
为了纪念《星球大战》纪念日,编写一个程序来显示以下文本,滚动起来就像《星球大战》的开始抓取: It is a period of civil war. Rebel spaceships, striking from a hidden base, have won their first victory against the evil Galactic Empire. During the battle, Rebel spies managed to steal secret plans to the Empire's ultimate weapon, the Death Star, an armored space station with enough power …

24
最短Minmod函数
该minmod功能是熟悉的一种变型分钟,出现在偏微分方程斜率限制性高分辨率方案。给定许多坡度,它会选择最平坦的坡度,同时注意坡度之间的相对符号。 该函数接受任意数量的参数。然后将minmod(x 1,x 2,...,x n)定义为: min(x 1,x 2,...,x n),如果所有x i都严格为正 max(x 1,x 2,...,x n),如果所有x i均为负 0,否则。 我们将仅考虑整数输入,因为这实际上不会影响实现,并且对于某些(深奥)语言应具有更大的包容性。 编写程序或函数,该程序或函数通过STDIN,ARGV或函数参数(如果要比可变参数函数更方便,则可以使用数组)接收n个有符号整数(对于n> 0),然后返回或打印(到STDOUT)结果的minmod(a,b)。 您一定不能使用内置的min或max函数(显然,如果可以实际找到的话,也没有内置的minmod)。此外,除对固定的少量项目(少于5个)进行分类外,不得使用任何内置的分类功能。 如果您的语言没有带符号的类型,则可以使用无符号的类型并将其解释为二进制补码。例如,如果您的语言仅使用无符号字节,则可以使用255代表-1和128代表-128,等等。 这是代码高尔夫球,因此最短的答案(以字节为单位)获胜。 测试用例 Input Output 2 2 -3 -3 0 0 3 -5 0 2 4 1 1 0 1 2 0 -1 1 2 0 -4 -2 -3 -2 …

6
最近的分数
任务: 您的程序将使用格式正确的,正的简单分数<numerator>/<denominator>。 对于此输入,它必须找到两个分数。 小于输入的分数。 大于输入的分数。 两个分数的分母都必须小于输入的分母。在所有可能的分数中,它们与输入的差异应该最小。 输出: 程序的输出必须为: 小于输入的小数,格式为<numerator>/<denominator>。 后面跟一个空格字符(ASCII码32)。 后跟一个大于输入的小数,格式为<numerator>/<denominator>。 如下: «fraction that is < input» «fraction that is > input» 规则: 输出的所有分数必须使用最低的术语。 输出的所有分数必须是正确的分数。 如果规则没有允许的任何适当分数,则必须输出0而不是分数<输入,而1不是分数>输入。 您可以选择是要接收分数作为命令行参数(例如yourprogram.exe 2/5)还是提示用户输入。 您可能会认为您的程序不会收到无效的输入。 最短的代码(以任何语言表示的字节数)为准。 任何非标准的命令行参数(运行脚本通常不需要的参数)都计入总字符数。 您的程序不得执行的操作: 取决于任何外部资源。 取决于具有特定的文件名。 输出所需输出以外的任何内容。 需要非常长的时间才能运行。如果您的程序在一分钟的179565/987657时间内用普通家庭用户的计算机上的分数用6位数字的分子和分母(例如)运行一分钟,则它无效。 输出分数以0作为分母。你不能被零除。 输出分数0作为分子。您的程序必须输出0而不是小数。 减少输入分数。如果作为输入给出的分数是可约的,则必须使用输入的分数。 发布此挑战之前,不得使用没有公开可用的编译器/解释器的编程语言来编写您的程序。 例子: 输入: 2/5 输出: 1/3 1/2 输入: 1/2 输出: 0 …

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.