Questions tagged «code-golf»

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

4
滚动我的D&D角色的能力得分
在《龙与地下城》中,角色的一些最重要属性是能力得分。这六个能力有6个能力得分。这些能力是力量,敏捷,体质,智力,智慧和魅力。 在确定角色得分时,我使用以下过程:滚动4d6,以任意顺序降低最低得分。这意味着我将四个骰子骰子掷出4个,忽略最低的结果,将另外三个骰子相加。这完成了6次。我会以任何方式将结果编号分配给这些能力。 我用于为技能分配分数的系统是为角色的最重要技能分配最高的分数,这取决于角色的等级,由于每个人都需要宪法而将第二高的分数分配给体质,并任意分配其他四个分数。 下表列出了各种课程的最重要技能: Bard - Charisma Cleric - Wisdom Druid - Wisdom Fighter - Stregth Monk - Wisdom Paladin - Charisma Rogue - Dexterity Sorcerer - Charisma Wizard - Intelligence 挑战:我要给您(作为输入)我的角色课的第一个字母(大写)。我希望您滚动能力得分并将其分配给上述能力,然后按照力量,敏捷,体质,智力,智慧,魅力等顺序输出。 例: Input: R Rolls: 4316 3455 3633 5443 2341 6122 Scores: 13 14 12 13 9 10 Ordering: …
18 code-golf  game  random 

11
从值列表确定范围
给定一个未排序的唯一正整数列表,请输出序列整数的最长可能范围中的最短列表。 输入 未排序的唯一正整数列表 例如 9 13 3 11 8 4 10 15 输入可以来自以下任意一项: stdin 命令行参数 函数参数 输出值 在标准输出或您的语言最接近的相似输出的一行上打印的范围或单个值的有序列表。 如果存在两个或多个顺序整数(按值顺序,而不是列表中的位置),则将使用-将它们表示为包含范围。例如 8-11 所有其他整数仅打印而没有其他符号 单个空格将分隔输出 输入中不存在的数字不应出现在输出中,例如3 5 6,3-6由于4不存在而不能缩短为 例子 成功: IN> 9 13 3 11 8 4 10 15 6 OUT> 3-4 6 8-11 13 15 IN> 11 10 6 9 13 8 …
18 code-golf 

9
增量游戏时间格式
增量游戏时间格式 目标 增量游戏通常具有倒数计时器,用于表示完成任务之前的天,小时,分钟和秒。根据可用空间,它们可以格式化为: 2d 13h 23h 59m 48s 14m 3h 0m 0s 编写此代码的目的是编写执行此格式化的功能或程序。 输入项 总秒数。 要输出的最大段数。 输出量 细分包括: 0周 0天 0小时 0分钟 0秒 每个段由单个空格分隔。 显示的段必须是连续的。例如,即使分钟为零,您也不会显示小时和秒而不显示分钟。 一位数字值不带前导零,尽管必须将零值显示为0。 值四舍五入。 显示的第一段是第一个非零值。 测试用例 seconds segments output 0 1 0s 123 1 2m 123 2 2m 3s 123 3 2m 3s 82815 3 23h 0m …
18 code-golf  date 

6
代码块
代码块 这是一个假设的情况是星期五晚上,你已经邀请了平时的高尔夫哥们参加自己喜欢的爱好:打高尔夫球的代码。但是,由于这是一项耗费人心的工作,因此您需要为团队筹集一些大脑食物,以便您可以尽可能多地打高尔夫球。 现在,每个人最喜欢的小吃是鸡块,但是有一个问题:没有一包能满足每个人的需求的零食。因此,由于您已经处于打高尔夫球的状态,因此您决定创建一个程序,该程序可以弄清楚您必须购买哪些包才能满足每个人的金块需求。 鸡块包装的大小无处不在,并且取决于您在世界上居住的地方,标准大小也有所变化。但是,最近的[服务金块的地方]库存以下尺寸的金块包装: 4, 6, 9, 10, 20, 40 现在,您可能会注意到无法订购某些组合的矿块。例如,11掘金是不可能的,因为没有组合是11完全相等的。但是,您可以43通过获取1包20,1包10,1包9和1包来制作4, 20 + 10 + 9 + 4 = 43 (597) 597每个项在哪里平方并加在一起(提示:最佳解决方案将其作为最大值)。当然,还有其他制造方法43,但是如您所知,每包的金块越多,每个金块的价格越便宜。因此,理想情况下,您要购买数量最少的包装,并以最大的数量购买,以最大程度地降低成本。 任务 您应该创建一个程序或函数,该程序或函数采用与每个人的要求相对应的整数列表。然后,您应该计算并打印出最具成本效益的α订单,以购买鸡肉块。成本效益最高的α阶是每个数量的平方和最高的组合。如果是绝对没有办法买掘金完美,你必须打印一个falsy值,如0,False,Impossible!,或无论是在您的语言版本。 I / O示例: [2 7 12 4 15 3] => [20 10 9 4] 1, 1, 2, 1 => False 6 5 5 5 5 5 …
18 code-golf 

2
莱文施泰因距离的每一步
在此挑战中,您将编写一个程序,该程序将两个换行符分隔的字符串s1(第一行)和s2(第二行)作为输入(STDIN或最接近)。您可以假设s1的长度始终小于30且大于s2的长度。然后,程序应输出从s1到s2的levenshtein距离中的每个步骤。 为了弄清楚levenshtein距离中每个步骤的含义,程序将打印n个字符串,其中n是s1和s2之间的levenshtein距离,两个相邻字符串之间的levenshtein距离将始终为1。顺序无关紧要。输出应以换行符分隔,并且不包括s1,仅包括in和s2。该程序还应在一台现代计算机上在一分钟内运行。 例子: 输入: Programming Codegolf 输出: rogramming Cogramming Coramming Coamming Codmming Codeming Codeging Codegong Codegolg Codegolf 输入: Questions Answers 输出: uestions Aestions Anstions Ansions Answons Answens Answers 输入: Offline Online 输出: Ofline Online 输入: Saturday Sunday 输出: Sturday Surday Sunday 这是指向python脚本的链接,该脚本可打印出距离和步骤。 附加规则: 不使用互联网 适用标准漏洞 这是代码高尔夫球,因此请使代码简短;最短的代码胜出!
18 code-golf  string 

9
绘制越来越多的盒子
任务 在此挑战中,您的任务是绘制几叠高度递增的盒子的ASCII艺术作品。输入的堆栈数为正,是一个正整数。第一个堆栈包含一个size的框2x2。第二个堆栈包含2个size的框3x3。通常,第kth个堆栈包含ksize的盒子(k+1)x(k+1)。 每个框的边框都是使用字符绘制的-|+,它们的内部由空格组成。相邻的框共享其边界,并且+即使它们是另一个框的边界的一部分,也应始终使用绘制角。 例子 输出为1: ++ ++ 输出为2: +-+ | | +-+ ++ | ++-+ 输出为3: +--+ | | | | +--+ | | +-+ | | +--+ +-+ | ++ | | ++-+--+ 输出为5: +----+ | | | | | | | | +----+ | | | | | …

2
寻找僵局
寻找僵局 对多线程应用程序进行编程时,必须格外小心,以避免在访问共享资源时死锁各个线程。一个死锁发生时线程试图访问要锁定在另一个线程在同一时间,其他线程试图访问由第一锁定的资源的资源。这是简单的情况,但是如果资源链较长,则可能变得更加复杂。 挑战 您应该编写一个程序或函数,以在每个线程访问的资源列表中检测可能的死锁情况。这是代码高尔夫球,因此最短答案以字节为单位。 每个线程是同时启动的,但是之后它们可以按交错的任意组合运行。如果有2个线程,每个4个动作,它可以作为运行(其中,每个数字是具有该ID采取的线程的动作)1,1,1,1,2,2,2,2,2,2,2,2,1,1,1,1,1,2,1,2,1,2,1,2,1,1,2,2,2,2,1,1,或任何其它可能的组合。 输入值 您将通过STDIN,函数参数或最接近的替代方法接收字符串列表。每个字符串将采用格式+a -b。该字符串中的每个字符串都表示线程对资源的locking(+)/ unlocking(-)。每个线程之间将有一个---分隔符。确保线程不会尝试锁定已锁定的资源,并且所有线程将在退出前显式解锁其锁定的所有资源。下面是一个示例来演示: +a # Lock resource a +b # Lock resource b -a # Unlock resource a -b # Unlock resource b --- # Thread separator +b # Lock resource b -b # Unlock resource b 输出量 如果输入不包含任何可能的死锁,则输出为假,如果输入包含可能的死锁情况,则输出为假。例如: true false 1 0 都是有效的输出,但是任何明确定义为“真/假”的内容都可以接受。 …

24
柜台柜台
在印刷术中,计数器是指字母的全部或部分由字母形式或符号包围的区域。封闭式计数器是完全由字母形式或符号包围的计数器。您必须编写一个将字符串作为输入的程序,并在文本中打印已关闭计数器的总数。 您的输入: 可以是命令行输入,也可以是STDIN的输入,但必须指定。 将完全由可打印的ASCII字符组成,表示所有ASCII值(介于32和126之间)。这确实包括空格。更多信息。 现在,这确实在字体之间略有不同。例如,您正在阅读的字体将'g'视为一个封闭的计数器,而google字体将'g'视为具有两个封闭的计数器。因此,这不是问题,这里是每个字符封闭计数器的正式数量。 所有没有封闭计数器的符号: !"'()*+,-./12357:;<=>?CEFGHIJKLMNSTUVWXYZ[\]^_`cfhijklmnrstuvwxyz{|}~ 请注意,这包括空间。 以下是所有带有一个封闭计数器的符号: #0469@ADOPQRabdegopq 这是带有2个封闭计数器的所有符号: $%&8B 最后但并非最不重要的是,这里有一些示例输入和输出。 Programming Puzzles and Code-Golf 应该打印 13 4 8 15 16 23 42 应该打印 5 All your base are belong to us 应该打印 12 Standard loopholes apply 应该打印 12 Shortest answer in bytes is the winner! 应该打印 8
18 code-golf  string 

13
扩展编码字符串
有经典的游程长度编码和解码。 input output a3b2c5 aaabbccccc 这是相当直接的,之前已经完成。 面临的挑战是也占了非标准的行为,当多个字符先于游程长度(一个单从0-9位)。游程长度位之前的每个字符(字符串的一个非数字或结束之前的最后一位数字)具有施加到其上该值单独地和以打印出来。 一些测试输入和输出,包括一些边缘情况: input output ab3c5 aaabbbccccc a0b3 bbb 13b1 111b a13b1 aaa111b a123b1 aaa111222b aa2a1b1 aaaaab 字符序列([a-zA-Z0-9]+)后必须跟游程长度长度([0-9]) 只需要考虑有效的输入(([a-zA-Z0-9]+[0-9])*) 是的,空字符串是有效输入。 输入通过标准输入,通过标准输出输出 这是代码高尔夫,字节数确定获胜者。
18 code-golf  string 

5
从数组中删除最小和缝
接缝雕刻算法或更复杂的版本用于在各种图形程序和库中调整内容感知图像的大小。高尔夫吧! 您的输入将是一个矩形的二维整数数组。 您的输出将是相同的数组,窄一列,并且从每一行中删除一个条目,这些条目代表从上到下的路径,且所有路径的总和最低。 https://zh.wikipedia.org/wiki/Seam_carving 在上图中,每个单元格的值都以红色显示。黑色数字是一个单元格值和其上方三个单元格之一中最低的黑色数字(由绿色箭头指向)的总和。突出显示的白色路径是两条最低的总和路径,总和均为5(1 + 2 + 2和2 + 2 + 1)。 如果有两条路径的总和最低,则删除哪一条都没有关系。 输入应来自标准输入或作为功能参数。可以用方便选择的语言(包括方括号和/或定界符)进行格式化。请在您的答案中指定期望输入的方式。 输出应该以明确定界的格式输出到stdout,或者作为函数的返回值使用您的语言,相当于2d数组(其中可能包括嵌套列表等)。 例子: Input: 1 4 3 5 2 3 2 5 2 3 5 2 4 2 1 Output: 4 3 5 2 1 4 3 5 3 5 2 3 or 3 2 5 …

7
三角计数的二进制图像
我的挑战往往有点艰巨和缺乏吸引力。所以这里有些简单而有趣的事情。 阿尔金序列 Alcuin的序列 A(n)是通过计算三角形来定义的。A(n)是具有整数边和周长的三角形的数量n。这个顺序被称为约克·阿尔库恩。 此序列的前几个元素从以下开始n = 0: 0, 0, 0, 1, 0, 1, 1, 2, 1, 3, 2, 4, 3, 5, 4, 7, 5, 8, 7, 10, 8, ... 举例来说A(9) = 3,因为整边和周边唯一的三角形9是1 - 4 - 4,3 - 3 - 3和2 - 3 - 4。您可以在下面看到3个有效三角形。 此序列中有一些非常有趣的模式。例如A(2*k) = A(2*k - 3)。 有关更多信息,请参阅OEIS上的A005044。 …

3
系一条珍珠项链
总览 Pearls(或Masyu)是在网格上玩的逻辑游戏。网格上放置了黑白珍珠。目的是形成单个闭合回路,该回路仅使用直线段和直角穿过每个珍珠。 有一些规则可以控制环与珍珠的相互作用: 白色珍珠必须直行,但环必须在其路径中的上一个和/或下一个单元格中转动。 必须打开黑色珍珠,但是回路必须直接穿过路径中的下一个和上一个单元。 回路不得交叉或以其他方式相交。所有单元格都具有完全零个或两个循环入口/出口。 维基百科的一个示例难题(及其解决方案): 您的目标是解决给定的难题。如果有多种可能的解决方案,那么给出哪种解决方案都没有关系。 输入值 输入将是一个未解决的正方形网格。上面显示的示例如下所示: ..w.w..... ....w...b. ..b.b.w... ...w..w... b....w...w ..w....w.. ..b...w... w...b....w ......ww.. ..b......b w是白色珍珠,b是黑色珍珠,并且.是一个空单元。 假设输入有效。这意味着其结构良好,并且至少有一种解决方案是可能的。所有有效的拼图至少为3x3,并且至少包含一颗珍珠。 输出量 输出是代表路径的坐标字符串。网格的左上角是0 0,右上角是n-1 0,其中n是网格的宽度。 路径只是一系列有序坐标: x1 y1 x2 y2 x3 y3 ... 假定路径是封闭的,所以您无需在末尾重复第一个坐标,但是这样做不会有任何损失。 输出应至少包含路径中的所有角。如果没有转弯,则不必输出路径上的每个像元。例如,示例的输出可以以以下内容开头: 1 0 5 0 5 1 ... 要么 1 0 2 0 3 0 …

15
从0到2 ^ n-1(按POPCORN顺序)
...抱歉,这里没有爆米花,只有POPCNT。 编写最短的程序或函数,该程序或函数接受一个数字,n并以数字的二进制表示形式(popcount)以1位数字的升序输出从0到2 n -1的所有整数。不允许重复。 具有相同popcount的数字的顺序是实现定义的。 例如,对于n = 3,所有这些输出均有效: 0, 1, 2, 4, 3, 5, 6, 7 [0, 4, 1, 2, 5, 3, 6, 7] 0 4 2 1 6 5 3 7 输入和输出格式是实现定义的,以允许使用语言功能进一步修改代码。对输出有一些限制: 数字必须以十进制格式输出。 输出必须在数字之间包含合理的分隔符(允许使用尾随分隔符,但不能使用前导符)。 换行(\n),标签(\t),空间,,.,;,|,-,_,/是相当合理的分隔符。我不介意额外的空格来进行漂亮的打印,但不要使用字母或数字作为分隔符。 中的数字和隔板可以通过包围[ ],{ }或任何数组或列表符号。 不要打印上面没有提到的其他内容。 奖金 如果您的解决方案可以即时生成数字,则将您的分数乘以0.5。这种好处的实质是,如果您要将打印解决方案直接转换为生成器,则生成器最多仅使用O(n)内存,其中n是如上定义的位数。(您不必实际将解决方案转换为生成器)。请注意,尽管我施加n <= 28,但存储所有数字所需的内存仍呈指数增长,并且一个幼稚的排序解决方案将在n = 28时占用至少4 GB的内存。 在申请此奖金之前,请添加一些关于您的解决方案工作原理的简单说明。
18 code-golf 

6
预测落石
在此挑战中,您将获得从侧面看的二维地形图。不幸的是,地形的某些部分漂浮在空中,这意味着它们会坠落。您的工作是预测它们的降落位置。 输入 您的输入是一个或多个等长的换行符分隔的字符串,仅包含以下字符#(数字符号,表示一块岩石)或.(一个句点,表示空白)。 输出 您的输出具有与输入相同的格式,但具有以下修改。让我们将输入字符串视为岩石的二维网格。输入中通过相邻岩石的路径连接到网格底部的每个岩石都是牢固的 ; 其他岩石松动。对角相邻的岩石不视为相邻。所有松散的岩石都将直线下落,最后以一堆堆叠的形式固定在坚硬的岩石或底行上。松散的岩石彼此不相连,因此它们是单独坠落的,而不是大地层。输出是结果网格。 例子 输入 ..###. .##.#. .#.... .##.#. 不含松散的岩石,因此输出与此相同。 输入 ...#.. .#..#. .#..## .#...# .##### .#...# 顶部包含一块松散的岩石,然后掉落在其下方的坚硬岩石上。输出是 ...... .#..#. .#..## .#.#.# .##### .#...# 输入 .#####.... .#....#### ###.###..# #.#...##.. .####..#.# ......###. ..#...#..# ..#...#..# 左侧有一大堆松动的岩石。该组随着岩石的下落而分解,因此输出为 .......... ....###### ..#.###..# . #...##.. .##....#.. .##...#### ####..#..# #####.#..# 澄清说明 您可以从STDIN接收输入并输出到STDOUT,也可以编写函数。 这是代码高尔夫球,因此最短的程序(以字节为单位)是赢家。 …
18 code-golf  grid 

9
求和持续时间
挑战 编写最短的代码,可以对标准输入中出现的所有持续时间求和。程序必须仅考虑与以下模式之一匹配的字符串,而忽略其余模式。 HH:MM:SS (it will be interpreted as HH hours, MM minutes and SS seconds) H:MM:SS (it will be interpreted as H hours, MM minutes and SS seconds) MM:SS (it will be interpreted as MM minutes, SS seconds) M:SS (it will be interpreted as M minutes, SS seconds) 与枚举模式匹配的字符串示例: 12:00:01 …

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.