Questions tagged «code-golf»

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

16
不重叠矩阵总和
不重叠矩阵总和 给定k个长度为n的数组,使用每个数组中的一个元素输出可能的最大和,这样就不会有两个元素来自同一索引。保证k <= n。 输入项 一个非空整数数组的非空列表。 输出量 代表最大和的整数。 例子 Input -> Output [[1]] -> 1 [[1, 3], [1, 3]] -> 4 [[1, 4, 2], [5, 6, 1]] -> 9 [[-2, -21],[18, 2]] -> 0 [[1, 2, 3], [4, 5, 6], [7, 8, 9]] -> 15 [[1, 2, 3, 4], [5, …

15
任意间隔尺
制作一个程序,该程序需要一个长度和间隔列表,并使用线条图字符为每个间隔输出具有更长刻度线的该长度的标尺 ┌ ┬ ┐ │ ╵ 输出的第一行应以0的刻度开头,┌以的长度结尾的刻度结束┐,中间的┬每个字符都使用一个。length第一行总共有+ 1个线条画字符。 刻度应使用╵和│根据输入间隔在垂直方向上延长半字符。 相对于之前的间隔,间隔从最小到最大列出。详细说明: 第一个间隔告诉第二个最小间隔(最小间隔为1)中有多少个基本刻度(第一行-每个刻度一个字符)。例如,[3]将每三个刻度延长半个字符。 第二个间隔和后续间隔是下一个最小间隔。例如,[3,5]将每15个基本刻度增加一个完整字符,[3,5,2]将每30个基本刻度增加一个字符半。 子间隔为1是有效的,并且有效地表示最后一个间隔行以完整字符而不是半字符延长。 示例测试用例应有助于阐明其工作原理。 示例/测试用例 3,[]: ┌┬┬┐ 9,[3]: ┌┬┬┬┬┬┬┬┬┐ ╵ ╵ ╵ ╵ 30,[5,2]: ┌┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┐ │ ╵ │ ╵ │ ╵ │ 32,[4,2,2,2]: ┌┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┐ │ ╵ │ ╵ │ ╵ │ ╵ │ │ ╵ │ 48,[5,3,2] ┌┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┐ │ ╵ …

5
画一条由换向器制作的路径
这个挑战发生在网格上。 +----------+ | | | | | | | | | | | | | | | | | | +----------+ 这个是10 x 10,但可以是任何矩形。 该网格上有四个方向。上,下,左和右。 任务是绘制从大写字母方向初始位置开始的路径。在此示例中,将从U直接向上。 +----------+ | | | | | | | | | | | | | | | | | U | +----------+ 路径将向上并且由句号(。)组成,直到碰到墙为止,然后以星号(*)终止。 +----------+ | …
25 code-golf 

14
我的电影有多令人沮丧?
我的父母有家庭影院设备。遥控器坏了,很难在菜单中向右导航。大多数情况下,它不起作用,但是当它起作用时,它会迅速向右快速移动。 这显然很令人沮丧,但是当您想要输入需要导航如下所示的键盘的电影标题时,这最令人沮丧: a b c d e f g h i j k l m n o p q r s t u v w x y z 1 2 3 4 5 6 7 8 9 0 您的任务是将电影标题作为输入并计算键入该电影标题的“令人沮丧”程度。特定字符串的无奈数是需要从其前面的字母开始右移的字母的数量。我们不在乎它们有多远,因为如果我们开始向右移动,我们几乎会立即到达行尾,并且我们也不在乎向上,向下或向左移动,因为它们很容易。 例如,如果我们想输入 keyboard 我们从k免费开始。 e就在上方,k因此我们不需要向右移动。 y 一路向左,因此无需向右移动。 b 但是,它在下一列的右侧,因此我们需要向右移动才能到达。 o 在下一列上,因此我们必须向右移动才能到达。 a …
25 code-golf  string 

28
让我变元
背景 对于此挑战,“元序列”将被定义为一系列数字,其中不仅数字本身会增加,而且增量也会增加,并且增量将增加值,依此类推。 例如,第3层元序列将从以下内容开始: 1 2 4 8 15 26 42 64 93 130 176 因为: 1 2 3 4 5 6 7 8 9 >-| ↓+↑ = 7 | Increases by the amount above each time 1 2 4 7 11 16 22 29 37 46 >-| <-| | Increases …

30
正如程序员所说:努力变得懒惰
故事 您看过9gag的这篇文章吗?也许您有自己的句子的感觉。但是随后您意识到,您只需要半个小时就可以打高尔夫球,而您将不必再花时间在上面。 提交 您的程序将获得一个输入字符串,该字符串将以加引号的形式返回,如下所述。禁止出现标准漏洞。允许输出为行列表。允许使用不影响输出的尾随空格和空行。 输入规则 输入仅包含可打印的ASCII字符。 输入中可能包含空格。单词是由它们决定的。 保证一个空间永远不会跟着另一个空间。 没有输入或空字符串的情况无关紧要。 输出规则 如果给出了一个单词,则程序必须在引号之间返回字符串。 如果输入字符串包含2个或更多单词,则它首先返回初始输入,但第一个单词用引号引起来。然后在下一行,它返回初始输入,但第二个单词用引号引起来。剩下的话依此类推。 通常,程序必须返回与输入中的单词一样多的行。 例子: test -> "test" This is codegolf -> "This" is codegolf This "is" codegolf This is "codegolf" This is a significantly longer, but not the longest testcase -> "This" is a significantly longer, but not the longest …
25 code-golf  string 

30
画一些扩大的箭头
这个挑战是关于打印一系列不断增长的ASCII艺术箭头。我将用语言描述模式,但是看一下本系列开始的内容可能会更容易: > < -> <- --> <-- ---> <--- ----> <---- -----> <----- ------> <------ ... 长度为n的箭头包含箭头(<或>)和n-1破折号(-)。朝右的箭头先是破折号,然后是>。左箭头以开头<,后接短划线。该系列包括一个长度为n向右的箭头,然后是长度为n的左向箭头,其中n从1到无穷大。 要完成挑战,请编写一个程序或函数,该程序或函数接受一个输入,一个整数i >= 1并输出第一个i箭头。箭头是单独的,不是左右成对的,因此i=3您应该输出: > < -> 您可以返回字符串列表,或一个接一个地打印它们。如果要打印,则箭头必须由一些一致的定界符来定界,而不必像示例中那样是换行符。 这是代码高尔夫球,因此最少的字节获胜。

25
检测完美配对
让我们有一个函数,它接收一个字符串并删除所有成对的相邻相同字符。例如fff f(abbbacc)=abaf(abbbacc)=abaf(a\color{red}{bb}ba\color{red}{cc}) = aba 请注意,当两对重叠时,我们只会移除其中一对。 如果重复应用最终产生空字符串,我们将调用完美配对的字符串。例如,上面的字符串不是完美配对的,因为如果再次应用,我们仍然会得到。然而,像这样的字符串是完美配对的,因为如果我们应用三次,我们将得到空字符串abbbaccabbbaccabbbaccfffabaabaabaeabbccaddeeabbccaddeeabbccaddefff f(eabbccadde)=eaaef(eabbccadde)=eaaef(ea\color{red}{bbcc}a\color{red}{dd}e) = eaae f(eaae)=eef(eaae)=eef(e\color{red}{aa}e) = ee f(ee)=f(ee)=f(\color{red}{ee}) = 您的任务是编写完美配对的计算机代码,该代码采用一个字符串(可打印ASCII),并确定其是否完全配对。源的字节串本身必须是完美配对的字符串,尽管您的代码不必一定限于可打印的ASCII。 您可以输出两个不同的值:一个用于输入完美配对的情况,另一个用于不配对的情况。 这是一个代码问题,因此答案将按其来源的字节大小进行评分,而字节越少越好。 测试用例 abbbacc→Falseabcba→Falseabab→Falseabbbaabacc→Trueeabbccadde→Truebbbb→Trueabbbacc→Falseabcba→Falseabab→Falseabbbaabacc→Trueeabbccadde→Truebbbb→Trueabbbacc \rightarrow \mathrm{False}\\ abcba \rightarrow \mathrm{False}\\ abab \rightarrow \mathrm{False}\\ abbbaabacc \rightarrow \mathrm{True}\\ eabbccadde \rightarrow \mathrm{True}\\ bbbb \rightarrow \mathrm{True}

19
记住元音!
输入项 一串可打印的ASCII字符,例如: This is an example string. 输出量 对于每个BCDFGHJKLMNPQRSTVWXYZbcdfghjklmnpqrstvwxyz没有元音(AEIOUaeiou)的辅音(),请在其末尾添加小写字母。 第一个元音之前的辅音保持原样: Thisi isi ana examapale seterinigi. 测试用例 AN EXAMPLE WITH A LOT UPPERCASE (plus some lowercase) => ANa EXAMaPaLE WITiHi A LOTo UPuPEReCASE (pelusu some lowerecase) And here comes a **TEST** case with 10% symbols/numbers(#)! => Anada here comese a **TESeTe** …
25 code-golf  string 

30
零和计数
编写一个程序或函数,如果n≥1,则返回的解数为±1±2±3±...±n = 0。 对于n = 6,没有解,所以答案为0。对于n = 4,有两个解,所以答案为2(两个解是1-2-3 + 4 = -1 + 2 + 3-4 = 0)。 这是OEIS序列A063865。一些示例输入/输出是: n a(n) 1 0 2 0 3 2 4 2 5 0 6 0 7 8 8 14 9 0 10 0 11 70 12 124 13 0 14 0 15 …

25
Golf A括号匹配算法
您将得到一个字符串s。保证字符串具有相等的且至少为[s和]s。还可以保证括号是平衡的。该字符串也可以包含其他字符。 目的是输出/返回元组列表或包含每个[和]对的索引的列表列表。 注意:字符串为零索引。 示例: !^45sdfd[hello world[[djfut]%%357]sr[jf]s][srtdg][]应返回 [(8, 41), (20, 33), (21, 27), (36, 39), (42, 48), (49, 50)]或与此等效的东西。元组不是必需的。列表也可以使用。 测试用例: input:[[asdf][][td([)ty54g% ]hg[[f]u][f[[jhg][gfd]sdf]sdfs]ghd]fr43f] output:[(0, 62),(1, 6), (7, 8), (9, 56), (13, 22), (25, 30), (26, 28), (31, 52), (33, 47), (34, 38), (39, 43)] input:[[][][][]][[][][][[[[(]]]]])) output:[(0, 9), (1, 2), (3, 4), (5, …

30
让我们设计一个数字马赛克
挑战 给定一个正整数,重复其数字一个,对应于它在位置。换句话说,每个数字应该重复次(对于每个,以1为索引),从而创建新的数字:NñNd1,d2,d3,⋯,dnd1个,d2,d3,⋯,dñd_1, d_2, d_3, \cdots, d_nNñNdkdķd_kkķk1≤k≤n1个≤ķ≤ñ1\le k\le n d1d2d2d3d3d3⋯dndndn⋯dnn times¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯d1个d2d2d3d3d3⋯dñdñdñ⋯dñ⏟ñ 次¯\overline{d_1d_2d_2d_3d_3d_3\cdots\underbrace{d_nd_nd_n\cdots d_n}_{n\text { times}}} 然后,将其水平和垂直记录下来,并在空白处填充数字的副本,该副本与空格的列索引和行索引之间的较大索引相对应。最终输出应如下所示: ⎡⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢d1d2d2d3d3d3⋯d2d2d2d3d3d3⋯d2d2d2d3d3d3⋯d3d3d3d3d3d3⋯d3d3d3d3d3d3⋯d3d3d3d3d3d3⋯⋮⎤⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥[d1个d2d2d3d3d3⋯d2d2d2d3d3d3⋯d2d2d2d3d3d3⋯d3d3d3d3d3d3⋯d3d3d3d3d3d3⋯d3d3d3d3d3d3⋯⋮]\begin{bmatrix} \color{red}{d_1} \color{green}{d_2 d_2} \color{blue}{d_3 d_3 d_3} \cdots \\ \color{green}{d_2 d_2 d_2} \color{blue}{d_3 d_3 d_3} \cdots \\ \color{green}{d_2 d_2 d_2} \color{blue}{d_3 d_3 d_3} \cdots \\ \color{blue}{d_3 d_3 d_3 d_3 d_3 d_3} \cdots \\ \color{blue}{d_3 d_3 …

29
用我的周期性继任者之和代替我!
这次,我对您有一个简单的挑战。给定一个正整数数组A(或您的语言中的等价整数),将每个条目A i替换为下一个A的总和我的元素一个,骑自行车从一开始就回来,如果没有足够的项目。 像往常一样,您可以使用任何编程语言进行竞争,并且可以通过任何标准方法并以任何合理的格式接受输入并提供输出,同时请注意,默认情况下会禁止这些漏洞。您也可以选择使用A的大小作为输入。这是代码高尔夫球,因此每种语言的最短提交(以字节为单位)将获胜。 示例/测试用例 考虑到[1,3,4,5],你的代码应该输出[3,10,13,14],因为1被替换3,3被替换4+5+1=10(注意它是如何从一开始就缠回),4通过5+1+3+4=13和5通过1+3+4+5+1=14。 鉴于[3,2,1,9],你的程序产生[12,10,9,33],因为我们替换3用2+1+9=12,2用1+9=10,1用9而9用3+2+1+9+3+2+1+9+3=33(注意我们是如何包裹从一开始就回一次以上)。 一些其他测试用例供您选择: [4,3,2,1] -> [10,7,5,4] [3,2,1,9] -> [12,10,9,33] [1,3,4,5] -> [3,10,13,14] [4,4,3,2,2] -> [11,11,8,6,8] [3,5,3,2,1] -> [10,14,6,4,3] [3,2,4,3,2,1,1] -> [9,7,7,4,2,1,3] [7,8,6,5,4,3,2,1,5] -> [29,33,20,15,11,8,6,5,30] [28,2,4,2,3,2,3,4,5,3] -> [137,6,10,5,9,7,12,38,39,34] [1,2,3,4,5,4,3,2,1,2,3,4,3,2,1] -> [2,7,13,14,12,8,5,3,2,7,9,7,4,2,1]

30
IP地址与否?
您的网络扫描工具烦人地挑剔输入,如果您向它提供了包含不正确字符或格式不正确的IPv4地址,则会立即崩溃。 IPv4地址是一个32位数字地址,用四个数字隔开,每个数字用句点分隔。每个数字可以为零到255。 我们需要编写一个工具来对输入进行预验证以避免这些崩溃,并且我们的特定工具很挑剔:有效的格式如下所示:a.b.c.da,b,c和d: 可以是一个无前导零0的自然数。 应介于0-255(含)之间。 如果不包含特殊符号+,-,,,等。 应为小数(以开头10) 输入:字符串 输出:真值或假​​值(也可以接受任意值) 测试用例: Input | Output | Reason | | - 1.160.10.240 | true | - 192.001.32.47 | false | (leading zeros present) - 1.2.3. | false | (only three digits) - 1.2.3 | false | (only three digits) - 0.00.10.255 | false …

2
是魔方吗?
敬拜的传教士经过的时间过长,是要指出“ Rubik's Cubes”(在T恤,海报等上)的图片实际上无法解决。 首先要检查的是多维数据集由正确的部分组成。要解决一个立方体需要六种颜色,每个颜色有九个正方形。多维数据集还需要每个边缘和角单元(这些是组成多维数据集的较小的多维数据集)是唯一的。它们不仅必须是唯一的,而且如果两个中心部分彼此相对,则任何边或角部分都不能包含这两种颜色。 一旦拥有由所有正确零件组成的多维数据集,您仍然需要验证它是否可以解决。这里有一些规则,所以我请专家来解释它们,下面的破坏者解释了我们如何做到这一点。如果您有兴趣自行解决问题,则无需访问该站点即可了解或参与此挑战。 链接说明 您的任务是采用一种模式作为输入,并确定它是否实际上是可解决的魔方。为了解决问题,必须有一种方法可以在多维数据集上执行有效的移动,以使多维数据集的每个面上只有一种颜色(不同的面上有不同的颜色)。大多数Rubik立方体具有标准颜色(白色与黄色相反,等等),您可能不会假定求解状态遵循该特定颜色。 有效的移动是立方体的单个面的顺时针或逆时针旋转。随着立方体表面的旋转,与该表面相邻的任何正方形也将旋转,并保持连接到它们先前接触的表面。 IO 您可以以任何合理的方式使用该多维数据集。如果您的语言具有一些内置的对您有利的“立方体面”类型,也可以作为输入,否则,您可以采用2D网格的网络,立方体的数组,每个面1 3 x 3列表。只是合理。如果您想知道某种特定格式是否可以接受,请在聊天中对我进行评论或ping我,然后我将添加挑战以说明其有效性。 您的输入格式最多只需要支持9种颜色。 对于输出,这是一个决策问题,因此您应该为“是,这是一个有效的魔方”输出一个常数,而为“否,这不是有效的魔方”则输出一个常数。 这是代码高尔夫球,因此答案将以字节计分,而字节数越少越好。 测试用例 这是测试用例。它们的格式为一个立方体的网络,每个正方形为一个字母。不同的字母代表不同的颜色。可以根据要求添加更多的测试用例。 可解决的 RRR RRR RRR GGGWWWBBBOOO GGGWWWBBBOOO GGGWWWBBBOOO YYY YYY YYY GRR GRR ORW WWRBWYBOOGGY GGRBWGYBBOOO OOGRWGYWWRBB WYO YYB YYB 无法解决 RRR RRR RRR GGGWWWBBBOOO GGGWWWBBBOOO GGGWYWBBBOOO YWY YYY YYY RRR RRR RRR …

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.