Questions tagged «code-golf»

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

1
平面图!
免责声明:这个问题中讲的故事完全是虚构的,仅出于介绍目的而发明。 我有一个朋友,他是建筑师,在向他解释了代码高尔夫的概念和这个站点之后,他说我应该编写一些对变更有用的东西。我问他他认为有用吗?作为一名建筑师,他回答说,他很喜欢拥有一个平面规划师,该规划师为他提供了在一定尺寸的房屋中布置一定尺寸的房间的所有可能方案。我以为我将证明代码高尔夫球毕竟不是没有用,并以尽可能少的字节数为他提供此程序。 你的任务: 编写一个程序或函数,当给定包含整个房屋尺寸的数组D和包含内部房间尺寸的第二个数组R时,以ASCII艺术形式输出房屋内部房间的所有可能配置。 所有房间和房屋的外墙应形成为标准ASCII框,并使用| 垂直墙为-符号,水平墙为-符号,拐角为+符号。例如,尺寸为[4,4]的房屋看起来像: +----+ | | | | | | | | +----+ 如您所见,拐角不算作一组尺寸的一部分。-或|的数量 构成侧面的字符应等于尺寸中给定的数字。房间可以与房屋共用墙壁,也可以与房屋共用墙壁。房间内可能没有较小的房间。 例如,配置 +--+---+-+ | | | | | | | | +--+---+ | | | | | +--------+ 对于D = [5,8]和R = [[2,2],[2,3]]有效。 输入: 两个数组,其中一个包含两个整数(房屋的尺寸),另一个包含一系列包含房间尺寸的数组。 输出: 将所有可能的房屋组成的数组作为字符串,或者包含所有可能的房屋的字符串以某种一致的方式定界。请注意,完全相同配置的旋转次数仅应计算一次。 测试用例: D R -> Output [4,3] …

15
反转串!
您的任务:编写一个程序/函数,当给定仅包含ASCII字符的字符串时,将以反白的方式输出/返回该字符串。 例: 1)输入 Hello, World! 2)在输入中为唯一字符编号。(输入字符串之间用竖线(|)分隔,以提高可读性) H|e|l|l|o|,| |W|o|r|l|d|! 1 2 3 4 5 6 7 8 9 10 3)对于重复字符,请查找该字符的第一个匹配项,并用与第一个相同的数字对重复的字符进行编号。 H|e|l|l|o|,| |W|o|r|l|d|! 1 2 3 3 4 5 6 7 4 8 3 9 10 4)颠倒字符串,但不颠倒数字。 !|d|l|r|o|W| |,|o|l|l|e|H 1 2 3 3 4 5 6 7 4 8 3 9 10 …
11 code-golf  string 

18
请填写空白!
(不,不是这个也不是任何这些) 给定一个字符串和一个字符串列表,用相应的字符串填充输入字符串中的所有空格。 输入输出 输入字符串仅包含字母字符,空格和下划线。它是非空的,并且不以下划线开头。换句话说,输入字符串与正则表达式匹配^[a-z A-Z]([a-z A-Z_]*[a-z A-Z])?$ 输入列表中的每个字符串都是非空的,并且仅包含字母数字字符和空格。换句话说,它们匹配正则表达式^[a-z A-Z]+$。 空白是下划线(_)的连续序列,下划线()之前或之后都没有。 输入字符串包含n一些正整数的空格n,字符串列表恰好包含n字符串。 通过将k输入字符串中的每个-th空格替换为输入字符串k列表中的-th字符串来获得输出。 例 给定一个输入字符串"I like _____ because _______ _____ing"和一个字符串列表["ice cream", "it is", "satisfy"],我们可以找到如下输出: 第一个空格紧随其后"like "。我们"ice cream"用来填充它"I like ice cream because ______ _____ing"。 第二个空格紧随其后"because "。我们"it is"用来填充它"I like ice cream because it is _____ing"。 第三个空格紧随其后"is "。我们"satisfy"用来填充它"I like ice cream because it is …

3
根据要求的天气设置部落图腾
有一个苏城村。它有一个图腾: __ ___| |___ \/ \ / \/ /\ ``| |`` /\ /^^\ | | /^^\ / /\ \ | | / /\ \ '''''''''''''''''''''''''''' 图腾让苏族人可以掌握天气情况,以帮助他们完成不同的任务。帮助村民适当地装饰图腾,以获取充足的天气。图腾包含以下几个部分: __ ___|AA|___ \/ \BBBBBBBB/ \/ /\ ``|CC|`` /\ /^^\ |DD| /^^\ / /\ \ 13 |EE| 42 / /\ \ '''''''''''''''''''''''''''' A适用于太阳 ()或云 ww …

4
这……是……要塞!
Fortress是由Sun编程语言研究小组(RIP Fortress)开发的一种语言,具有独特的属性,可以用不同的字体样式(例如,黑板粗体,粗体,斜体,罗马等)。目标是在HTML标记中表示一个单字符的Fortress变量。 这是一字符变量设防的工作方式(出于代码查询目的,从文档中进行了简化/修改): 如果该变量是重复的大写字母(例如ZZ),则其格式为黑板粗体(𝔸𝔹ℂ𝔻𝔼𝔽𝔾ℍ𝕀𝕁𝕂𝕃𝕄ℕ𝕆ℙℚℝ𝕊𝕋𝕌𝕍𝕎𝕏𝕐ℤ) 如果该变量前面带有下划线,则该变量将以罗马字体呈现(单独保留) 如果变量后面带有下划线,则该变量将以粗体(<b>v </b>)呈现。 如果该变量既不带下划线也不带下划线,则该变量以斜体(<i>v </i>)呈现。 黑板粗体的代码点是::𝔸1D538,𝔹:1D539, ℂ:2102,𝔻:1D53B,𝔼:1D53C,𝔽:1D53D,𝔾:1D53E,ℍ:210D,𝕀:1D540,𝕁:1D541,𝕂:1D542,𝕃:1D543,𝕄:1D544,ℕ:2115,𝕆:1D546,ℙ:2119,ℚ:211A,ℝ:211D,𝕊:1D54A,𝕋:1D54B,𝕌:1D54C,𝕍:1D54D,𝕎:1D54E,𝕏:1D54F,𝕐:1D550,ℤ:2124。它们在程序中每个占一个字节(如果您选择的语言完全可以处理这些字符) 输入将是重复的ASCII大写字母,或者是没有下划线,前导下划线或末尾下划线的单个ASCII字母(AKA _a_将不是输入)。这是代码高尔夫球,因此最低字节数为准! 测试用例: a => <i>a</i> BB => 𝔹 c_ => <b>c</b> _d => d E => <i>E</i> G_ => <b>G</b> _H => H ZZ => ℤ 链接:规范,直接下载版本0.1 alpha。 参考实现(这在Fortress中,但是Fortress不喜欢大多数双连字符,因此该实现在D中): dstring fortify(string arg) { import std.string, std.conv; alias D …
11 code-golf 

5
电脑永远不会品尝到令人耳目一新的Cookie
受github.com/JackToaster/Reassuring-Parable-Generator的启发,又受xkcd.com/1263的启发。可能的话是从派生reassuring.cfg该资源库的。 建议查看reassuring.cfg (使用第12次提交)以查看输出匹配的语法(输出是与语法匹配的所有字符串的列表)。 任务:您的程序必须输出pastebin pastebin.com/2SNAJ1VH中包含的所有7968个区分大小写的精确文本行。pastebin的副本保存在Wayback Machine中 这是来自pastebin的33条激励线的示例: Computers can't enjoy a salad. Computers can't enjoy a cake. Computers can't enjoy a ice cream cone. Computers can't enjoy a meal. Computers can't enjoy a drink. Computers can't enjoy a steak. Computers can't enjoy a chicken dinner. Computers can't enjoy a piece …

9
实现一个奇怪的自动机
我在玩蜂窝自动机,发现其中的一种有趣的行为。运作方式如下: 它从左到右读取一个二进制字符串,如果遇到一个1后跟2其他值的二进制字符串,它将0在结果后面追加一个并继续读取。如果遇到a 0(或剩余少于3个值),它将附加当前值和a 1并继续读取。在字符串的末尾,它将1在结果后附加一个。 这是一代人的例子 01011111 ^ 我们首先遇到a,0因此我们将其追加01到结果中 01011111 ^ 01 现在我们遇到一个,1所以我们附加一个零并跳过接下来的两个值 01011111 ^ 010 我们遇到另一个,1所以我们也一样 01011111 ^ 0100 现在,我们还有另一个1但没有足够的空间可以跳转,因此我们附加了当前单元格和一个1(在这种情况下11) 01011111 ^ 010011 我们已经结束了,所以我们追加一个1并终止这一代 01011111 ^ 0100111 任务 给定任何合理格式的输入,您必须创建一个计算一代自动机的函数或程序。 这是一个代码问题,因此答案将以字节计分,而字节越少越好。 实施范例 这是Haskell中的示例实现(定义了一个函数d,但是程序无限期地打印迭代): d('1':_:_:x) = "0" ++ d x d(a:x) = a:'1':d x d x = "1" r x = x:map …

1
正弦ASCII艺术动画文本
我有点想念那些展示计算机功能的旧演示,它们被称为x86而不是i3,i5和i7。我第一次在386上观看的电影之一是Future Crew的Unreal演示,它正在庆祝其25周年。在0:43分钟,演示的第一部分开始,我们看到正弦曲线路径下的滚动文本。让我们尝试模仿ASCII艺术中的效果! 挑战 给出以下路径: *** *** *** *** ** ** * * * * * * * * ** ** *** *** ****** 和输入文本,沿着该路径绘制文本,如下所示: Thi Golf! s i de Yay s Co ! P r d o n g a ra s mmi zle ng Puz 请注意,空格在路径中算作字符,并且如果文本长于示例,则路径会自行重复。 动画部分 绘制文本后,请等待100毫秒(以创建约10 fps的动画)并从路径的下一个位置开始再次绘制文本。因此,对于frame …

4
不饱和度
不饱和度 这并不是一个特别困难的代码难题-但我很想看到您解决问题的多种方式。 不饱和度是原子之间的双化学键的数目和/或化合物中的环数。 您将以XaYbZc的形式得到化合物的分子式(其中a,b和c是化合物中X,Y或Z的原子数)-分子式可以是任何长度,并且可以包含任何化学元素在元素周期表中(尽管C,H,N,F,Cl,Br以外的元素,我可能会被忽略,因为它们不在公式中显示)。该化合物将包含至少一个碳原子。您必须计算并显示其不饱和度。 例如,化合物苯(如下图所示)的DoU为4,因为它具有三个双键(由原子之间的双线表示)和一个单环(成环连接的多个原子): 根据LibreTexts的定义: DoU =(2C + 2 + N-X-H)/ 2 哪里: C 是碳原子数 N 是氮原子数 X 是卤素原子的数量(F,Cl,Br,I) H 是氢原子数 测试用例: C6H6 --> 4 C9H2O1 --> 0 C9H9N1O4 --> 6 U1Pt1 --> Not a valid input, no carbon Na2O1 --> Not a valid input, no carbon C1H1 --> …

5
最小未使用数量共享一个因素
这是工厂问题的一个很好的解决方案。我将定义一个序列,然后您浏览一些代码以输出给定索引的条目。 序列中的第一项是2。 序列中的第n个项目是除n和1以外的最小正整数,与n共享至少一个因子(除1之外),该因子尚未出现在列表中。 测试用例 以下是序列中的前25个项目: 1 2 2 4 3 6 4 8 5 10 6 3 7 14 8 12 9 15 10 5 11 22 12 9 13 26 14 7 15 18 16 20 17 34 18 16 19 38 20 24 21 27 22 11 23 …

3
Lyndon字分解
背景 一个林登字是一个非空字符串,它是严格按字典比所有其他的旋转小。可以将任何字符串唯一地分解为Lyndon单词的串联,这样这些子单词在字典上就不会增加;您的挑战是尽可能简洁地执行此操作。 细节 您应该实现一个函数或程序,该函数或程序枚举任何可打印ASCII字符串的Lyndon字分解,以便将结果子字符串输出为某种数组或流。字符应按其代码点进行比较,并允许使用所有标准输入和输出方法。与通常的代码高尔夫球一样,以字节为单位的最短程序获胜。 测试用例 '' [] 'C' ['C'] 'aaaaa' ['a', 'a', 'a', 'a', 'a'] 'K| ' ['K|', ' '] 'abaca' ['abac', 'a'] '9_-$' ['9_', '-', '$'] 'P&O(;' ['P', '&O(;'] 'xhya{Wd$' ['x', 'hy', 'a{', 'Wd', '$'] 'j`M?LO!!Y' ['j', '`', 'M', '?LO', '!!Y'] '!9!TZ' ['!9!TZ'] 'vMMe' ['v', 'MMe'] 'b5A9A9<5{0' ['b', '5A9A9<5{', …

15
反复互惠
您需要做的是创建一个将小数作为输入的函数/程序,并输出重复取数字小数部分的倒数的结果,直到数字变成整数。 更具体地说,过程如下: 令x为输入 如果x是整数,则将其输出。 否则:x ← 1Fr a c(x)X←1个F[R一种C(X)x \leftarrow \frac{1}{\mathrm{frac}(x)}。回到2。 Fr a c(x)F[R一种C(X)\mathrm{frac}(x)是的小数成分XXx,并且等于X - ⌊ X ⌋X-⌊X⌋x - \left\lfloor x \right\rfloor。⌊ X ⌋⌊X⌋\left\lfloor x \right\rfloor是x的地板上,这是最大的整数小于XXx。 测试用例: 0 = 0 0.1 = 1/10 -> 10 0.2 = 1/5 -> 5 0.3 = 3/10 -> 10/3 -> 1/3 -> 3 0.4 …

19
怎么把HEX2转换成RGBA?
艺术世界充满了色彩,但网络世界比其他色彩及其渲染的艺术世界还要充实。因此,我们需要知道如何将一种颜色格式转换为另一种颜色格式。 挑战不言而喻: 编写程序/函数,然后将给定的十六进制代码(#00ff0080例如)转换为RGBA(如rgba(0, 255, 0, 0.5))。 规则: 禁止使用外部库/内置程序将HEX转换为RGBA。但是,可接受jQuery和类似的语法替换器。 标准输入/输出规则适用。 alpha的格式可以在(1 == 100%)或其他(100 == 100%)之间,这并不是很重要。 只要返回4个转换后的值(如字符串,数组,列表,您可以选择),输出就很灵活。 您可以选择不输入#开头。因此,您可以将输入作为#RRGGBBAA或RRGGBBAA。您可以假定十六进制代码(除外#)将始终为8个字符。 您应将所有值除以255,包括alpha。最小十进制精度(对于alpha来说,将为2个小数位)。 测试用例 Input: 00ff0080 Output: 0, 255, 0, 0.5 计分 code-golf,字节最少的代码获胜。

9
绘制ASCII轮廓图
考虑下面的3x3块,行进平方算法将为每个像元标识(带有从0开始的标记ID): 0: ... ... ... 1: ... ... \.. 2: ... ... ../ 3: ... --- ... 4: ..\ ... ... 5: /.. ... ../ 6: .|. .|. .|. 7: /.. ... ... 8: /.. ... ... 9: .|. .|. .|. 10: ..\ ... \.. 11: ..\ ... ... 12: …

10
我是一个特殊的N-bonacci号码吗?
N-bonacci序列最初是由@DJMcMayhem在此问题中发明的,它是通过以整数0和1开头,然后加上前N个数字以生成下一个数字而生成的序列。特殊的N-bonacci序列是一个以0和1以外的一对数字开头的N-bonacci序列,它们将被命名为X和Y。如果N大于序列中已经存在的项数,只需添加所有可用的条款。 因此,例如正常的斐波那契数列的N为2(取前两项),X和Y为0和1,或者1和1,具体取决于您问谁。 你的任务: 您将编写一个程序或函数来检查输入的整数(A)是否是由接下来的三个整数生成的特殊N-bonacci序列的一部分(将第二个输入用作N,将第三个和第四个用作X和Y) 。确保处理N = 1的特殊情况。 输入: 四个非负整数A,N,X和Y。 输出: 真/假值,指示A是否为N,X和Y输入生成的N-bonacci序列的一部分。 测试用例: Input: Output: 13,2,0,1->truthy 12,3,1,4->falsy 4,5,0,1-->truthy 8,1,8,9-->truthy 9,1,8,9-->truthy 12,5,0,1->falsy [0,1]>[0,1,1]>[0,1,1,2]>[0,1,1,2,4]>[0,1,1,2,4,8]>[0,1,1,2,4,8,16]>etc. 得分: 这是代码高尔夫球,因此以字节为单位的最低分数获胜。

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.