Questions tagged «code-golf»

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

1
我<3有条件
您最终在代码中有很多很长,看起来很无聊的条件: if flag == 1: while have != needed: if type == 7: 这些可以转换为它们更可爱的&lt;3条件副本: if abs(flag - 1) + 2 &lt;3: while 3 - abs(have - needed) &lt;3: if 2 + abs(type - 7) &lt;3: 任务 您的任务是带条件并使其成为条件&lt;3。唯一重要的间距是&lt;和之间没有间距3。 条件语句将是要么分隔两个表达式==,!=,&gt;,&lt;,&gt;=或&lt;=。 表达式将仅包含加,减,一元否定(-something),其中每个变量或数字前面有一个+或-一个(除了第一个没有变量或没有变量或数字-之前)。 数字将为[0-9]+,变量将为[a-z]+。如果需要使用答案|x|(的绝对值x),请使用该abs()函数。您可以假设所有变量都是整数,并且输入中的所有数字常量均小于1000。 输出并没有需要在它的简单形式。它确实需要像上面的条件表达式,这意味着它仅是两个表达式,以一个条件符号分隔,但是它也可以使用abs函数,将有效表达式括起来,然后就有效性而言就像变量一样。 如果输入没有任何变量值的输出,则输出始终为false但仍以表示的条件&lt;3。 挑战的一部分是弄清楚如何做到这一点,但以下是上述步骤have != needed: have != needed have - …

7
详细IP范围生成器
给定两个IP地址a和b,该任务很简单,输出该范围内的所有地址。 例子 范例1: f(a = 192.168.0.1, b = 192.168.0.4) 192.168.0.1 192.168.0.2 192.168.0.3 192.168.0.4 Example#2(TIO将截断它,在测试时使用较小的范围): f (a = 123.0.200.0, b = 124.0.0.0) 123.0.200.0 123.0.200.1 ... # Omitted pattern 123.0.200.255 123.0.201.0 ... # Omitted pattern 123.0.201.255 ... # Omitted pattern 123.0.255.255 123.1.0.0 ... # Omitted pattern 123.255.255.255 124.0.0.0 输入输出 a &lt; b …

7
两个数字是否包含唯一的阶乘?
将两个数字分解为阶乘;如果它们共享任何一个,则返回一个false值。否则,返回真实值。(受到最近这个问题的启发) 换句话说,以最贪婪的方式将每个输入数字写为(正整数的)阶乘和。如果两个表示中都没有阶乘出现,则返回真实值,否则返回假值。 例 鉴于20和49: 20 = 3! + 3! + 3! + 2! 49 = 4! + 4! + 1! 在这两种表示中都没有阶乘出现,因此返回真实值。 鉴于32和132: 132 = 5! + 3! + 3! 32 = 4! + 3! + 2! 3!在两种表示形式中均出现,因此返回假值。 输入输出 输入和输出可以通过任何标准方式进行。 输入将始终是两个非负整数;这些整数没有您的语言要求的上限。 输出应为真值或假值。只要每个输出正确地为真/假,这些值对于不同的输入不一定必须是一致的。 测试用例 如果输入为0,则答案将始终是真实的。其他真实测试用例: {6, 3}, {4, 61}, {73, 2}, {12, …

13
怪异和野豆游戏
也许你们中有些人已经知道这个游戏:您有一系列不同颜色的软糖。对于每种颜色,豆子都有不同的口味,有些是好,有些是坏,您不能一概而论。您必须选择一种给定颜色的豆,然后祈祷您选择了一个好的豆。 因此,编写最短的程序以接收您选择的颜色(从给定列表中选择),并随机返回所选的口味。必须从内置列表中挑选口味。输入和输出的可能列表为: Input Output choices [only one from the list] -------------------------------------------------- green lawn clippings, lime, mucus, pear yellow rotten eggs, buttered popcorn blue toothpaste, blue berry orange vomit, peach brown canned dog food, chocolate white stinky socks, tutti-frutti, baby diapers, coconut 规则: 您可以假定输入将始终是输入选择中的一种颜色。 大小写和尾随空格和/或换行符无关紧要。 输出必须一致地是随机的:成功的程序执行必须产生不同的结果,并且列表中的所有口味获得给定口味的机会必须相同。 这是代码高尔夫球,所以最短的程序可能会赢!

27
数组元素之间的所有非有序对
任务: 返回具有数组元素之间所有可能对的数组。 例 从a=["a", "b", "c", "d"];归b=[["a","b"],["a","c"],["a","d"],["b","c"],["b","d"],["c","d"]]。 对可以是任意顺序,只要包括所有可能的组合,并且显然["b","d"]与相同即可["d","b"]。 输入值 由类中的char组成的唯一字符串元素数组[a-z]。 输出量 包含所有可能的输入数组元素对的2d数组。 测试用例 input=["a","b","c"]; //output=[["a","b"],["a","c"],["b","c"]] input=["a","b","c","d","e"]; //output=[["a","b"],["a","c"],["a","d"],["a","e"],["b","c"],["b","d"],["b","e"],["c","d"],["c","e"],["d","e"]] 注:我找不到一个重复这一挑战。如果有一个,请在评论中提醒我删除问题。

10
最近的特殊年份是什么时候?
一个常见的一年是一年不是闰年,并在今年的第一天和最后一天是在同一天。一个特殊的普通年是从星期一开始,到星期一也结束。 您面临的挑战是创建一个程序/功能,当给定年份作为输入时,它会查找最接近的特殊普通年份,如果是普通年份,则将自身输出。如果年份与前一年一样接近,则输出更大的年份。 输入值 一个整数,代表要测试的年份,范围为1600 &lt;= x &lt;= 2100。 输出量 表示最接近的特殊公共年份的整数。 测试用例 2017 -&gt; 2018 2018 -&gt; 2018 1992 -&gt; 1990 1600 -&gt; 1601 2100 -&gt; 2103 1728 -&gt; 1731 (lies between 1725 and 1731) 笔记 给定范围内的所有54年都已显示在链接的Wikipedia文章中。我还将在这里提供它们以供参考: 1601, 1607, 1618, 1629, 1635, 1646, 1657, 1663, 1674, 1685, 1691 1703, 1714, 1725, …
11 code-golf  date 

14
验证2Col语法!
正如最近可能有几个人注意到的那样,我很大程度上放弃了Braingolf的开发,因为它既无聊又没有灵感,而是转到了2Col,它有点有趣,而且并不是设计成一种高尔夫语言。 2Col的定义功能是每行代码必须正好2个字符长,换行符除外。这意味着,一个2Col程序的长度总是可以被计算为3n-1,其中n是在程序行数。 所以这是我的挑战:给定2Col代码作为字符串,如果有效的2Col代码(每行正好是2个字符且符合3n-1公式),则输出true,否则输出false 。 输入值 输入应视为单个字符串或字符数组。 输出量 如果输入字符串是有效的布局,则为真实值,否则为假值。 您的代码应在使用的真实/错误值上保持一致 测试用例 ====== F! $^ ---- truthy ====== ====== *8 +1 Sq ---- truthy ====== ====== nop xt ---- falsey ====== ====== +1 +1 #^ ---- falsey ====== ====== &lt;empty string&gt; ---- falsey ====== ====== ye ---- truthy ====== ====== no&lt;space&gt; ---- …

8
爬到美国
现在,其他用户已经帮助特朗普修建了隔离墙,现在是您爬墙的时候了。 这是一个ascii艺术挑战,您需要输出带有随机放置的货舱的攀岩墙。 攀登墙由面板组成,每个面板具有3至10个支撑物,高度为5面板。每个面板的高度为4个字符,跨度为10个字符 我们|用来表示墙的侧面(arête),用a -表示面板的边缘。面板的角由表示,+而保持则由表示o。 最后,墙必须America!在顶部和Mexico底部。 您的程序应该不输入任何内容,除非需要输入才能运行,并且应该输出类似于以下内容的内容 这是一个示例输出: America! +----------+ | o | | o o | | o o | | o o | +----------+ | o | | o o | | o o | | o o | +----------+ | o | | o o | | …

17
检查矩阵是否为Toeplitz矩阵
将为您提供一个二维数组和一个数字,并要求您查找给定的矩阵是否为Toeplitz。 输入格式: 您将获得一个将two-dimensional矩阵作为参数的函数。 输出格式: 返回1从功能,如果矩阵是托普利茨,否则返回-1。 限制条件: 3 &lt; n,m &lt; 10,000,000 其中n,行m数是列数,而列数是列数。 样本测试案例: Sample Input : 4 5 6 7 8 9 2 4 6 7 8 9 1 4 6 7 8 0 1 4 6 7 Sample Output : 1 计分 这是代码高尔夫球,因此最短的答案以字节为单位。

10
旋转根
给定一个具有整数系数的非零多项式,并且其根在虚数和实线上,因此如果a是,则实在-a,则返回另一个多项式,其根旋转90度。 细节 多项式可以以任何合理的格式给出,例如作为系数列表。作为a且仅当-a为根的对称条件也强制旋转多项式也具有实数整数系数。 例子 在下文中,多项式被给出为单项式的降序系数列表。(即常数倒数)多项式x^2-1具有根{1,-1}。通过90°乘以i(虚数单位)来旋转它们,因此输出多项式的根应该{i,-i}为x^2 + 1。 Input / Output [1 0 10 0 -127 0 -460 0 576] [1 0 -10 0 -127 0 460 0 576] [1 0 -4 0] [1 0 4 0] [1] [1]

19
生成所有子列表分区
给定一个非空的整数列表,输出列表的每个可能分区,其中每个分区都是一个非空子列表。 因此,对于列表[1, 2, 3, 4],结果为: [[1, 2, 3, 4]] [[1, 2, 3], [4]] [[1, 2], [3, 4]] [[1, 2], [3], [4]] [[1], [2, 3, 4]] [[1], [2, 3], [4]] [[1], [2], [3, 4]] [[1], [2], [3], [4]] 列表在输出中的顺序无关紧要,因此[[1, 2, 3, 4]]可以是第一个,最后一个或任何位置。元素的顺序必须保留。 这是代码高尔夫球,所以最短的答案会获胜。 相关:对列表进行分区!

12
缩短Java程序包
简报 给定完全合格的Java类/程序包名称,您必须将其缩短为: 除最后一节和类(如果存在)之外,点分隔包的每个部分都将缩短为第一个字母。 包名称将全部为小写,并且该类(如果存在)将以大写字母开头,并为UpperCamelCase。软件包的形式如下: foo.bar.foo 和 foo.bar.foo.Class 例子 (No Class) Input com.stackoverflow.main Output c.s.main (Class) Input com.google.parser.Gson Output c.g.parser.Gson (Class) Input com.google.longer.package.TestClass Output c.g.l.package.TestClass 规则 以字节为单位的最短代码获胜 适用标准漏洞
11 code-golf 

3
挑战相似度检测器
挑战 给定两个问题ID,尝试通过查看答案来找出它们的相似程度。 细节 系统将为您提供两个问题ID codegolf.stackexchange.com。您可能会认为两个ID都存在未删除但不一定打开的问题。您必须遍历所有答案,并确定两个问题的答案中的代码之间的最小Levenshtein距离(不包括已删除的答案)。也就是说,您应该将问题1中的每个答案与问题2中的每个答案进行比较,并确定最小Levenshtein距离。要在答案中找到代码,请执行以下过程: 如何找到代码片段 文本主体是答案的实际代码,如果该文本位于反引号中并且位于其自己的行上,或者如果它缩进了4个空格,并且在其上方有一个空行,除非上面没有文本。 有效和无效代码段(带.空格)的示例(以一等号分隔) This is `not a valid code snippet because it is not on its own line` ======================================== This is: `A valid code snippet` ======================================== This is ....not a valid code snippet because there's no spacing line above ======================================== This is ....A valid code …

4
D&D 5e HP计算器
我很难记住升级D&D角色时要做的一切。无论出于什么原因,给我带来麻烦的事情之一就是弄清楚它们的新最大HP值应该是多少。为应对这一挑战,您将编写一个程序或函数来自动计算正确的值。 术语 要计算最大HP,您需要了解的第一件事是“宪法修改器”。每个DND角色都有六个整数能力得分,其中一个是体质得分。这项挑战所需的唯一相关知识是宪法能力得分如何影响另一个属性,即宪法修正。简而言之,修饰符等于floor( (ability_score - 10) / 2 )。冒险者只能获得1到20(含)之间的能力得分。您的代码将永远不必处理超出该范围的分数,这也意味着它将永远不必处理小于-5或大于+5的修饰符。尽管“体质”修改器可以随着角色升级而改变,但它对HP的影响会追溯应用,因此仅需要其当前值即可计算当前的最大HP。 (这与挑战完全无关,但是如果您对它如何影响最大HP感到好奇:您可以假设“强壮”专长在角色的体质修改器中增加2,以进行HP计算,因为这实际上是它的作用这不是专长的文字,但数学公式完全相同。您不必在回答中处理此专长。) 接下来,每个类别都有一个分配的“命中失败”类型,该类型涉及计算HP。下表列出了每个班级的命中骰子。 Sorcerer: d6 Wizard: d6 Bard: d8 Cleric: d8 Druid: d8 Monk: d8 Rogue: d8 Warlock: d8 Fighter: d10 Paladin: d10 Ranger: d10 Barbarian: d12 最后是角色的等级。所有影响的是下一部分中将值添加到运行总计中的次数。字符级别是1到20之间的整数,包括1。您的代码将永远不必处理超出该范围的级别。要达到等级n,角色将从等级1开始并提升n-1时间。例如,一个3级角色通过成为1级角色并升级两次而达到了他们所在的位置。 如何计算最大生命值 角色的最大生命值等于其在等级1处的生命值加上在每个等级中获得的增加值之和。 1级 在等级1上,角色的HP等于其命中骰子上的最高掷骰数(骰子名称中的数字,对于不熟悉骰子且面数多于6的那些人)加上其体质修改器。请记住,在以后计算HP时,您可能会假定角色的体质始终是相同的,因为每次更改体质时都会重新计算此部分。 升级时 每次角色升级时,都有两个选择。他们可以掷一个命中骰子,也可以掷该骰子的平均骰子(四舍五入)。无论选择哪种方法,都会将其“宪法”修改器添加到结果中。这个总数就是他们的HP增加的数量。对于此挑战,始终采用平均滚动,因此输出是确定性的。(同样,如果您不熟悉&gt; 6面骰子,则可以将向上舍入的平均掷骰计算为(highest_possible_roll / 2) + 1。) 有一个值得注意的例外。角色每次升级2时,其最大HP总是至少增加1 。如果上段中的说明在升级时导致增加0或更少,则增加1。 挑战 …
11 code-golf 

17
平等来自三分
摘自:OEIS- A071816 给定上限为n,您的任务是找到满足方程式的解的数量: a+b+c = x+y+z, where 0 &lt;= a,b,c,x,y,z &lt; n 该序列按照OEIS页面上的描述开始,如下所示(1索引): 1, 20, 141, 580, 1751, 4332, 9331, 18152, 32661, 55252, 88913, 137292, 204763, 296492, 418503, 577744, 782153, 1040724, 1363573, 1762004, 2248575, 2837164, 3543035, 4382904, 5375005, 6539156, 7896825, 9471196, 11287235, 13371756 对于n = 1,只有一种解决方案:(0,0,0,0,0,0) 对于n = 2有20级有序的解决方案(a,b,c,x,y,z)来a+b+c = …

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.