Questions tagged «code-golf»

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

30
更轻松的通信意味着更快的编码意味着更少的编码器意味着……
我父亲是一个非常出色的APL 专家,曾教过我APL的所有基础知识(以及更多),五年前的这一天就去世了。在准备APL 50年的过程中,我发现了这封专利信函(为不读丹麦语的人提供了便利),以作为手写徽标。它解释了APL从未赢得大量用户的主要原因-当然也适用于该社区所有令人惊叹的高尔夫语言的原因: 3497/77要求 1977年8月29 日下午13点 工程咨询公司Henri Brudzewsky,位于索堡的Mindevej 28, 第9类,包括计算机,尤其是APL编码的计算机, 第42类: IT服务代理公司,尤其是在使用APL编码的计算机期间。 任务 产生无重复EASIER COMMUNICATION MEANS FASTER CODING MEANS FEWER CODERS MEANS 行的文本的无限重复输出。您可以以EASIER或FASTER或开头文本FEWER。

30
大写字母与小写字母的比率
在这个挑战中,您和您的朋友正在争论哪种情况更好,大写还是小写?为了找出答案,您编写了一个程序来为您执行此操作。 由于esolang会吓your您的朋友,而冗长的代码会吓you您,因此您的代码将需要尽可能短。 例子 PrOgRaMiNgPuZzLeS & CoDe GoLf 0.52 uppercase DowNGoAT RiGHtGoAt LeFTGoat UpGoAT 0.58 uppercase Foo BaR Baz 0.56 lowercase 技术指标 输入将仅包含ASCII字符。所有非字母字符都应忽略。每个案例至少要有1个字符 输出应该是字母字符总数中出现频率最高的情况。它应该是一个精确到至少 2个小数位的小数。如果大写字母出现得更频繁,则输出应以uppercase或结束lowercase。 永远不会有相同数量的大写和小写字符。
28 code-golf  string 

12
翻转煎饼
在煎饼分类中,唯一允许的操作是反转序列中某些前缀的元素。或者,考虑一下一叠煎饼:我们将锅铲插入堆栈中的某个位置,然后将所有煎饼翻转到锅铲上方。 例如,6 5 4 1 2 3可以通过首先翻转第一个6元素(整个序列),产生中间结果3 2 1 4 5 6,然后翻转第一个3元素,得出来对序列进行排序1 2 3 4 5 6。 由于只有一个操作,因此整个排序过程可以由一系列整数描述,其中每个整数都是要包含pr flip的元素/煎饼的数量。对于上面的示例,排序顺序为6 3。 另一个例子:4 2 3 1可以用排序4 2 3 2。这是中间结果: 4 2 3 1 flip 4: 1 3 2 4 flip 2: 3 1 2 4 flip 3: 2 1 3 4 flip …

3
重箱堆叠
您有一堆沉重的箱子,并且希望将它们堆叠在尽可能少的堆叠中。问题是您不能在一个盒子中堆放更多的盒子,因此不能容纳更多的盒子,因此较重的盒子必须放在盒子的底部。 挑战 输入:整箱重量列表,以千克为单位。 输出:描述盒子堆栈的列表列表。这必须使用最少数量的堆栈作为输入。要成为有效的堆栈,堆栈中每个盒子的重量必须大于或等于其上方所有盒子的重量之和。 有效堆栈的示例 (按从下到上的顺序) [3] [1,1] [3,2,1] [4,2,1,1] [27、17、6、3、1] [33,32,1] [999,888,99,11,1] 无效堆栈的示例 (按从下到上的顺序) [1,2] [3,3,3] [5、5、1] [999、888、777] [4、3、2] [4321、3000、1234、321] 示例测试用例 1个 IN: [1, 2, 3, 4, 5, 6, 9, 12] OUT: [[12, 6, 3, 2, 1], [9, 5, 4]] 2 IN: [87, 432, 9999, 1234, 3030] OUT: [[9999, …

13
有效的羽毛球得分?
介绍: 我看到现在只有另一个与羽毛球有关的挑战。自从我自己打羽毛球以来(至今已有13年),我认为自己会增加一些与羽毛球有关的挑战。这里是第一个: 挑战: 输入:两个整数 输出:您自己选择的三个不同且唯一的输出之一。表示输入的内容是有效的羽毛球得分,并且该组以获胜者结束;一个表示输入的羽毛球得分有效并且该集合仍在进行中;表示输入的羽毛球得分无效。 使用羽毛球时,两个(两对)球员都从0分开始,并且当两个(两对)球员中的一个得分达到21,且相差至少2分,最高为30-29时,您停止。 因此,这些都是可能的输入对(以任意顺序),表明其是有效的羽毛球得分,并且该组已经结束: [[0,21],[1,21],[2,21],[3,21],[4,21],[5,21],[6,21],[7,21],[8,21],[9,21],[10,21],[11,21],[12,21],[13,21],[14,21],[15,21],[16,21],[17,21],[18,21],[19,21],[20,22],[21,23],[22,24],[23,25],[24,26],[25,27],[26,28],[27,29],[28,30],[29,30]] 这些都是可能的输入对(以任意顺序),表明它是有效的羽毛球得分,但该组仍在起作用: [[0,0],[0,1],[0,2],[0,3],[0,4],[0,5],[0,6],[0,7],[0,8],[0,9],[0,10],[0,11],[0,12],[0,13],[0,14],[0,15],[0,16],[0,17],[0,18],[0,19],[0,20],[1,1],[1,2],[1,3],[1,4],[1,5],[1,6],[1,7],[1,8],[1,9],[1,10],[1,11],[1,12],[1,13],[1,14],[1,15],[1,16],[1,17],[1,18],[1,19],[1,20],[2,2],[2,3],[2,4],[2,5],[2,6],[2,7],[2,8],[2,9],[2,10],[2,11],[2,12],[2,13],[2,14],[2,15],[2,16],[2,17],[2,18],[2,19],[2,20],[3,3],[3,4],[3,5],[3,6],[3,7],[3,8],[3,9],[3,10],[3,11],[3,12],[3,13],[3,14],[3,15],[3,16],[3,17],[3,18],[3,19],[3,20],[4,4],[4,5],[4,6],[4,7],[4,8],[4,9],[4,10],[4,11],[4,12],[4,13],[4,14],[4,15],[4,16],[4,17],[4,18],[4,19],[4,20],[5,5],[5,6],[5,7],[5,8],[5,9],[5,10],[5,11],[5,12],[5,13],[5,14],[5,15],[5,16],[5,17],[5,18],[5,19],[5,20],[6,6],[6,7],[6,8],[6,9],[6,10],[6,11],[6,12],[6,13],[6,14],[6,15],[6,16],[6,17],[6,18],[6,19],[6,20],[7,7],[7,8],[7,9],[7,10],[7,11],[7,12],[7,13],[7,14],[7,15],[7,16],[7,17],[7,18],[7,19],[7,20],[8,8],[8,9],[8,10],[8,11],[8,12],[8,13],[8,14],[8,15],[8,16],[8,17],[8,18],[8,19],[8,20],[9,9],[9,10],[9,11],[9,12],[9,13],[9,14],[9,15],[9,16],[9,17],[9,18],[9,19],[9,20],[10,10],[10,11],[10,12],[10,13],[10,14],[10,15],[10,16],[10,17],[10,18],[10,19],[10,20],[11,11],[11,12],[11,13],[11,14],[11,15],[11,16],[11,17],[11,18],[11,19],[11,20],[12,12],[12,13],[12,14],[12,15],[12,16],[12,17],[12,18],[12,19],[12,20],[13,13],[13,14],[13,15],[13,16],[13,17],[13,18],[13,19],[13,20],[14,14],[14,15],[14,16],[14,17],[14,18],[14,19],[14,20],[15,15],[15,16],[15,17],[15,18],[15,19],[15,20],[16,16],[16,17],[16,18],[16,19],[16,20],[17,17],[17,18],[17,19],[17,20],[18,18],[18,19],[18,20],[19,19],[19,20],[20,20],[20,21],[21,21],[21,22],[22,22],[22,23],[23,23],[23,24],[24,24],[24,25],[25,25],[25,26],[26,26],[26,27],[27,27],[27,28],[28,28],[28,29],[29,29]] 任何其他整数对都将是无效的羽毛球得分。 挑战规则: I / O是灵活的,因此: 您可以将输入作为两个数字的列表。通过STDIN或函数参数将两个数字分开;两根弦;等等 输出将是您自己选择的三个不同且唯一的值。可以是整数(即[0,1,2],[1,2,3],[-1,0,1]等); 可以是布尔值(即[true,false,undefined/null/empty]);可以是字符/字符串(即["valid & ended","valid","invalid"]);等等 请指定您在答案中使用的I / O! 允许您按照从最低到最高的顺序对输入整数进行排序,反之亦然。 输入整数可以为负,在这种情况下,它们当然是无效的。 一般规则: 这是代码高尔夫球,因此最短答案以字节为单位。 不要让代码高尔夫球语言阻止您发布使用非代码高尔夫球语言的答案。尝试针对“任何”编程语言提出尽可能短的答案。 标准规则适用于具有默认I / O规则的答案,因此允许您使用STDIN / STDOUT,具有适当参数的函数/方法以及返回类型的完整程序。你的来电。 默认漏洞是禁止的。 如果可能的话,请添加一个带有测试代码的链接(即TIO)。 另外,强烈建议为您的答案添加说明。 测试用例: 这些测试用例有效,并且设置已经结束: 0 21 12 21 21 23 28 30 29 30 这些测试用例有效,但仍在使用中: 0 …

13
给我一个最小的魔法总和
保持简短的挑战。 您会得到4个数字:p1,p2,p3和p4。 数字的魔术总和定义如下: magic_sum = |p1 - p2| + |p2 - p3| + |p3 - p4| + |p4 - p1| 仅允许更改以上整数值之一(p1,p2,p3或p4)。您需要更改该值,以使这些值的神奇总和达到最小值。 例如: p1,p2,p3,p4 = 17,-6、15、33。在这种情况下,魔法总和的值为78。 您可以在此处将-6更改为16,魔法总和的值将变为36,这是可达到的最小值。 请记住,数字可以是正整数或负整数。 这是代码高尔夫球,因此代码胜利中最少的字节。布朗尼指出在娱乐语言上使用实用语言。愿4日与您同在。 重申: 样品1 输入1 17 -6 15 33 输出1 36 说明1 -6可以替换为16,这使我们可以达到的最小魔术总和。 样品2 输入2 10 10 10 10 输出2 0 or 2 两者都可以接受 …

15
自我识别坐标
编写一个程序或函数,给定一个整数n,该程序或函数构造一个长度为n维的数组n,其中每个元素都是其自身坐标的标识符。也就是说,从一个数组开始,向其中填充n数组,其中每个n数组包含更多数组,深度为n-1。最深数组的元素是描述它们在完整数组中的位置的坐标。 一些例子,以防我的解释令人困惑。 n = 1 ["1"] n = 2 [ ["11", "12"], ["21", "22"] ] n = 3 [ [ ["111","112","113"], ["121","122","123"], ["131","132","133"] ], [ ["211","212","213"], ["221","222","223"], ["231","232","233"] ], [ ["311","312","313"], ["321","322","323"], ["331","332","333"] ] ] 在此,“ 321”表示它是第三数组第二元素的第一元素。 规则: 坐标和尺寸(n)可以为0或1索引 您可以假设n两个索引选项的位数都为10以下,以防止产生歧义 IO是灵活的。 特别是,坐标可以是数组,字符串等,只要它们清楚即可。“ 321” => [3,2,1] 输出可以是以10为底的整数,带或不带前导零。 如果需要,坐标可以相反,只要一致即可。“ 321” =>“ 123” …
27 code-golf 

24
加-乘-加序列
(相关) 给定的整数n > 1, 1)构造号码的范围n, n-1, n-2, ... 3, 2, 1并计算出总和 2)取该数量的单独的数字和计算产品 3)采取的个别数字该数目并计算出总和 4)重复步骤2和3,直到达到一位数。该数字是结果。 该序列的前20个术语如下: 3, 6, 0, 5, 2, 7, 9, 2, 7, 9, 1, 9, 0, 0, 9, 6, 7, 0, 0, 6 注意:此序列不在OEIS中。 I / O和规则 数字将很快变得非常大,因此该解决方案必须能够处理多达100,000个输入数字而不会失败(如果您的代码可以处理超过此数量的情况就可以了)。 输入和输出可以通过任何方便的方法给出。 完整的程序或功能都是可以接受的。如果是函数,则可以返回输出而不是打印输出。 禁止出现标准漏洞。 这是代码高尔夫球,因此所有常用的高尔夫规则都适用,并且最短的代码(以字节为单位)获胜。 例子 n output 1234 9 3005 …

20
转换为苏州数字
苏州数字(苏州码子;又称花码)是中文十进制数字: 0 〇 1 〡 一 2 〢 二 3 〣 三 4 〤 5 〥 6 〦 7 〧 8 〨 9 〩 它们几乎像阿拉伯数字一样工作,不同之处在于,当有连续的​​数字属于该集合时{1, 2, 3},这些数字在垂直笔划表示法{〡,〢,〣}和水平笔划表示法之间交替{一,二,三}以避免歧义。此类连续组的第一位始终以垂直笔划符号书写。 任务是将正整数转换为苏州数字。 测试用例 1 〡 11 〡一 25 〢〥 50 〥〇 99 〩〩 111 〡一〡 511 〥〡一 2018 〢〇〡〨 123321 〡二〣三〢一 1234321 〡二〣〤〣二〡 9876543210 …

30
输出音符列表
这个任务很简单:编写一个程序或函数,将所有音符列表(使用英语音符名称)从A♭输出到G♯。 所有没有名称由单个字母组成的音符(例如,音乐键盘上的黑色音符)都应打印其名称两次,一次为音符尖,一次为平面音。不能输出可以用单个字母描述的尖音或平音,例如B♯(C)或F♭(E)。 这是输出示例: Ab, A, A#, Bb, B, C, C#, Db, D, D#, Eb, E, F, F#, Gb, G, G# 技术指标 程序或功能不得输入任何内容。 注释可以按任何顺序打印,也可以按我们标准I / O规则允许的任何列表输出进行打印 尖锐而扁平的Unicode符号(♯/♭)可以用b 和代替# 与往常一样,标准漏洞是被禁止的。 因为这是代码高尔夫球,所以最小的程序(以字节为单位)将获胜。

16
当心矩阵龙卷风!
矩阵龙卷风就像其他任何龙卷风一样:它由围绕中心旋转的事物组成。在这种情况下,矩阵元素代替空气。 这是矩阵龙卷风的示例: 首先,我们将矩阵切成正方形环,每个部分由距离边界相同距离的元素组成。这些部分将围绕中心顺时针旋转。在真正的龙卷风中,严重程度朝中心方向增加,矩阵龙卷风中的旋转步骤也是如此:最外面的部分(红色的部分)旋转1步,下一个部分(黄色的部分)旋转2步,依此类推上。旋转步骤是围绕中心旋转90°。 任务: 您应该接受的任务是编写一个函数或程序,该函数或程序将一个方矩阵作为输入,对其施加龙卷风效果,然后输出结果矩阵。 输入: 输入应为n其中的阶方矩阵n >= 1。无需对矩阵元素进行任何假设,它们可以是任何东西。 输出: 相同阶数的方阵,这是对输入矩阵施加龙卷风效应的结果。 例子: 订单矩阵n = 1: [['Hello']] ===> [['Hello']] 订单矩阵n = 2: [[1 , 2], ===> [[5 , 1], [5 , 0]] [0 , 2]] 订单矩阵n = 5: [[A , B , C , D , E], [[+ , 6 , …
27 code-golf  matrix 

8
贪婪的刀
iBug最近获得了由复合材料但有价值的材料制成的长条。该栏太长了,以至于iBug不能轻易将其出售以换取积分,因此他想削减它。杆由易碎的魔术材料制成,如果零件断裂,则由相同材料制成的杆的所有部分也会断裂,从而难以任意切割。 iBug希望将标尺切成尽可能多的片段。他还喜欢很短的程序和代码编程,因此对他的问题进行了抽象分析。 iBug的魔力棒表示为字符串(或者,如果愿意,可以表示为数组或字符序列),如下所示: aaabbccccccbbbaaacccccaabbbaaaaa 字符串中的每个字母代表一种魔术材料。该条始终与RegEx相匹配^\w*$,因此条中最多可以包含63种材料。“部分”是由空格分隔的任何字符的连续序列。 iBug希望您编写一个程序,如果完全删除了零个或多个字符集(用空格代替),则可以计算出他可以得到的最大部分,并告诉iBug该数字。 范例1: In: aaabbccccccbbbaaacccccaabbbaaaaa Out: 4 说明:如果b将其从工具栏中完全卸下,则iBug可以分为4个部分。他还可以通过删除b和来获得4个部分c,如下所示 aaabbccccccbbbaaacccccaabbbaaaaa # Original string aaa cccccc aaacccccaa aaaaa # Remove 'b' aaa aaa aa aaaaa # Remove 'b' and 'c' 这就是iBug可以从该栏获得的最大零件数 范例2: In: 111aa___9999____aaa99111__11_a_aa999 Result: 111aa 9999 aaa99111 11 a aa999 Out: 6 说明:通过仅删除下划线,iBug可以从条中获得6个部分,这是最大数目。 范例3: In: __________ Out: …
27 code-golf  string 

30
钻石创作者+
挑战: 给定一个整数n作为输入。创建一个等于给定数字2倍的钻石n。 输入: 输入为整数n且2 <n≤3000。 输出: 输出将是一个字符串,并且将以菱形的形式出现+,在开始时带有加法线,显示n使用+ 例子 : D(3): +++ + +++ +++++ +++++ +++ + D(5): +++++ + +++ +++++ +++++++ +++++++++ +++++++++ +++++++ +++++ +++ + D(6): ++++++ + +++ +++++ +++++++ +++++++++ +++++++++++ +++++++++++ +++++++++ +++++++ +++++ +++ + 获奖标准: 这是代码高尔夫球,因此每种编程语言的最短代码以字节为单位。

24
设定时间
想象以下可以通过箭头键控制的24小时制时钟: ╔══╗ ┌──┐ ║00║:│00│ ╚══╝ └──┘ HH mm 两次按向上箭头(↑↑)将增加当前关注的小时输入: ╔══╗ ┌──┐ ║02║:│00│ ╚══╝ └──┘ HH mm 按向右箭头(→)将聚焦其他输入。 ┌──┐ ╔══╗ │02│:║00║ └──┘ ╚══╝ HH mm 现在,按三次向下箭头(↓↓↓)将减少此输入。 ┌──┐ ╔══╗ │02│:║57║ └──┘ ╚══╝ HH mm 简而言之: 向上箭头(↑)将增加当前活动的输入。 向下箭头(↓)将减少有效输入。 右箭头(→)将焦点移至右输入。 左箭头(←)将焦点移到左输入。 上下运动将按预期的时间循环输入。 左右运动不会循环。 挑战 时钟从00:00小时输入激活开始(请参见第一个原理图)。给定输入命令列表,以HH:mm格式输出结果时间。 输入可以是字符串或列表(或等效语言),其中不同的输入方向可以是以下选项之一: ↑↓←→ udlr ^v<> 如果您的程序具有GUI,则按实际的箭头键 有标准漏洞。 测试用例 ↑↑→↓↓↓ = …
27 code-golf  date 

30
就地枚举每个相同编号的序列
给定一个严格的正整数列表,遍历每个不同的数字,并用新系列的连续索引(从零或一个开始)替换所有出现的数字。 例子 []→ []/[] [42]→ [0]/[1] [7,7,7]→ [0,1,2]/[1,2,3] [10,20,30]→ [0,0,0]/[1,1,1] [5,12,10,12,12,10]→ [0,0,0,1,2,1]/[1,1,1,2,3,2] [2,7,1,8,2,8,1,8,2,8]→ [0,0,0,0,1,1,1,2,2,3]/[1,1,1,1,2,2,2,3,3,4] [3,1,4,1,5,9,2,6,5,3,5,9]→ [0,0,0,1,0,0,0,0,1,1,2,1]/[1,1,1,2,1,1,1,1,2,2,3,2]

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.