Questions tagged «code-golf»

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

23
大小写排列
当您能够生成大写和小写的每个排列时,谁需要不区分大小写地比较事物?没有人!那就是答案。没人做到。您的任务是实现这一壮举。生成给定输入的所有可能的大写/小写排列。 输入项 一串可打印的标准ascii字符。输入不应假定全部为小写。输入将始终至少为一个字符。 输出量 输入的字符串的每个大写和小写排列(无重复)。这只能更改大小版本的字符(数字将保持不变)。每个排列必须输出为字符串或字符列表。不允许使用单例字符串列表。 例子 a1a ['a1a', 'a1A', 'A1a', 'A1A'] abc ['abc', 'abC', 'aBc', 'aBC', 'Abc', 'AbC', 'ABc', 'ABC'] Hi! ['hi!', 'hI!', 'Hi!', 'HI!'] 计分 这是代码高尔夫球,因此最短的答案(以字节为单位)获胜。 有趣的是,看到要处理扩展的ascii字符将花费多少额外的精力,这是一个额外的测试用例: ž1a -> ['ž1a', 'ž1A', 'Ž1a', 'Ž1A'] (您的程序不需要支持此功能)

4
找到我的话!
挑战的想法是从字典中的字母网格中找到所有单词。您的输入应来自stdin或函数arg,并将采用以下格式: [your dictionary as a list of space sep words] [a grid of letters] Example: The cool car looc thea jopr 寻找比赛的规则 如果在板上对角,水平或垂直找到匹配项(不区分大小写),则该匹配项有效。方向无关紧要(例如lookmatchs kool)。如果同一单词有多个匹配项,则将它们全部标记。 输出: 您的输出将是您得到的网格-稍有变化,即字母将以空格分隔,行将以双倍间距排列。例: Input: looc thea jopr Output: l o o c t h e a j o p r 为了表示比赛,您将在两个字母之间放一个箭头。箭头(/\-|X)指向匹配在一起的每对字母。X如果使用/\交叉。 例子: Input: The cool car looc …

23
Javascript左击高尔夫球
介绍 在过后左垫NPM包 余波,让我们有一个代码高尔夫为实现左垫。 的左垫功能由2个默认参数和1个额外的参数,在形式字符串,长度,(padchar)。如果未提供padchar,则将其标准化为空格字符。让我们以两个参数为例: left_pad("abc", 6) 首先,我们观察字符串的长度,即3。此后,我们需要在左侧填充该字符串,直到完整字符串的长度达到函数中指定的长度为止。在这种情况下6。由于未提供 padchar ,因此我们需要在空格处填充它: abc 这是一个包含3个空格和初始字符串的字符串,结果是一个长度为6的字符串。这是给定padchar的示例: left_pad("abc", 6, "-") 我们只做与上面的示例相同的操作,但是用padchar替换空格。在这种情况下,连字符: ---abc 任务 给定字符串,length以及可能的附加参数padchar,输出左侧填充的字符串。您可以假定长度数字等于或大于字符串的长度。padchar始终由1个字符组成。 测试用例 left_pad("string", length, ("padchar")) === "left-padded string" left_pad("foo", 5) === " foo" left_pad("foobar", 6) === "foobar" left_pad("1", 2, "0") === "01" left_pad("1", 2, "-") === "-1" 这是代码高尔夫球,因此字节数最少的提交将获胜!
27 code-golf  string 

4
将字符串映射到希尔伯特曲线
让我们将一些字符串映射到2d空间(分形样式)。您的任务是计算希尔伯特曲线并沿其放置一个字符串。 任务 任务是获取单行输入字符串,并沿希尔伯特曲线将其布局到足以容纳它但不更大的位置。尝试使字节数尽可能少;毕竟这是 代码高尔夫! 条件 空格要用空格填充,但在行尾不需要填充。 该行的开始应在左上角,结束应在左下角。 您可以创建一个程序或函数。 可能会出现一些新的测试用例,所以不要硬编码任何东西! 奖金 注意:奖金堆栈如下:-50% & -20% on 100B= -20% on 50B或-50% on 80B= 40B。 -50%如果输入是多行字符串,请反向进行此过程以创建原始输入。奖金测试用例:仅使用现有的(包括奖金测试用例!) -20%如果从输出中去除所有不必要的空格(例如,在一行的末尾)。 -5%如果您不污染全局名称空间(您知道我的意思!) 测试用例 abcdefghijklmn adef bchg nij mlk The quick brown fox jumps over the lazy dog. Thn f ju ewooxpm qckr rs ui btevo hlaz e y …

21
重新实现wc coreutil
这种挑战是相似的这个旧的,但与规范的一些不明之处敲定并不太严格的I / O需求。 给定仅由可打印ASCII和换行符组成的字符串输入,输出其各种度量(字节,字,行数)。 您必须输出的指标如下: 字节数。由于输入字符串保持在ASCII之内,因此这也是字符数。 字数。这是wc“单词:”的定义,它是非空格的任何序列。例如,abc,def"ghi"是一个“单词”。 行数。这是不言自明的。输入将始终包含尾随换行符,这意味着行数与“换行数”同义。尾随换行符不会超过一个。 输出必须完全复制默认wc输出(文件名除外): llama@llama:~$ cat /dev/urandom | tr -cd 'A-Za-z \n' | head -90 > example.txt llama@llama:~$ wc example.txt 90 165 5501 example.txt 请注意,行数是第一个,然后是字数,最后是字节数。此外,每个计数必须用空格填充,以使它们都具有相同的宽度。在上面的示例中,5501是具有4位数字的“最长”数字,因此165用一个空格和90两个空格填充。最后,所有数字都必须连接成一个字符串,每个数字之间要有一个空格。 因为这是code-golf,所以以字节为单位的最短代码将获胜。 (哦,顺便说一句……您不能在wc命令中使用该命令。以防万一,这还不是很明显。) 测试用例(\n代表一个换行符;您可能还需要一个额外的尾随换行符): "a b c d\n" -> "1 4 8" "a b c d e f\n" -> " 1 …
27 code-golf  string 

30
输出范德Corput序列
的DER Corput序列面包车是最简单的实例中的一个低差异序列。它的n-th项是just 0.(n written in base 10 and mirrored),所以它的第一个项是: 0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9, 0.01,0.11,0.21,0.31,0.41,0.51,0.61,0.71,0.81,0.91, 0.02,0.12,0.22,0.32,0.42,0.52,0.62,0.72,0.82,0.92,... 挑战 用任何编程语言编写一个程序或函数,该程序或函数将n小于的正整数作为输入10^6并返回或打印nvan der Corput序列的第一项。输出格式可以是浮点数列表,形式的字符串列表0.digits或唯一的字符串,其中的术语用逗号和/或空格,换行符分隔。 禁止出现标准漏洞。最短的源代码获胜。

20
我的山脉有几座山峰?
正整数列表可以可视化为量化的山脉,其中每个列表条目代表山脉的一个垂直部分的高度。 例如清单 1, 2, 2, 3, 4, 3, 5, 3, 2, 1, 2, 3, 3, 3, 2, 2, 1, 3 可以成为范围 x x x xxxxx xxx x xxxxxxxx xxxxxx x xxxxxxxxxxxxxxxxxx (缺乏诗情画意的人可能将其称为条形图,但我离题了。) 这个挑战中的问题是:在某个任意列表的山脉中有多少个峰?本质上,列表中有多少个局部最大值? 峰定义为山峰的一列或多列高度相等的连续部分,其中左右两列的高度较低。 可以很容易地从视觉上看出该示例在这些带括号的位置有四个峰: 1, 2, 2, 3, (4), 3, (5), 3, 2, 1, 2, (3, 3, 3), 2, …

7
胡萝卜人气统计
在PPCG聊天室的第十九个字节中,使用脱字号^(或红萝卜)是一种表示您同意之前发表的评论的一种方式。 脱字符号消息仅由N个^字符组成(其中N为正整数),表示与第N个先前的消息一致。因此,单个^表示与之前的消息^^一致,表示与消息两个^^^一致,表示与消息三个一致,依此类推。 另外,当插入符号消息X同意(又指向)另一个插入符号消息Y时,则称X与Y同意的消息相同。可能有多个层次,最后,所有插入符号消息都表示与一个非插入符号消息一致。 例如,如果聊天记录如下:(每行一条消息) I like dogs [line 1] I like cats [line 2] ^ [line 3] ^^^ [line 4] ^^ [line 5] I like turtles [line 6] ^ [line 7] ^^^ [line 8] ^^ [line 9] 然后,第1、2和6行是非插入符号消息,所有其他都是指向非插入符号消息的插入符号消息: 第3行直接指向第2行。 第4行直接指向第1行。 第5行指向第3行,第3行指向第2行。 第7行指向第6行。 第8行指向第5行,第5行指向第3行,第3行指向第2行。 第9行指向第7行,而第7行指向第6行。 因此,包括编写非插入符号消息的用户(并假设人们不插入自己的消息),我们可以得出以下结论: 2个人同意I like dogs(第1行和第4行)。 4个人同意I like …
27 code-golf  string 

9
将随机数映射到pi
十进制的双精度表示只能保证15个小数位的精度,因此pi近似为: 3.141592653589793 您可以看到数字3在位置1, 10, 16,数字1在位置2, 4等。 挑战 您的任务是创建一个程序或函数,该程序或函数将创建一个介于0和1之间的随机双数,并将该数字的值映射到pi的值。您可以通过将不同的数字放置在随机数中pi在数字中的位置来实现。如果在pi中找不到该数字,则将其跳过,并且pi中所有不在随机数中的数字都将以表示x。从左侧开始,每个值只能使用一次。 一些示例可能会更清楚地说明这一点。在以下示例中,第一个数字是pi,第二个是随机数,最后一个是所需的输出。 3.141592653589793 0.111111111111111 x.1x1xxxxxxxxxxxx 3.141592653589793 0.531000000000000 3.1xx5xxxxxxxxxxx 3.141592653589793 0.123456789123456 3.141592653x8x7xx 3.141592653589793 0.967552381459391 3.14159265358979x 规则: 该函数不应接受任何输入(可能的异常在项目要点3中进行了说明) 输出应仅由输出字符串组成,并带有可选的换行符(也可以接受单个尾随空格) 如果您的程序没有内置的Pi值和/或RNG,则可以对Pi进行硬编码,然后将随机数作为输入。您不能对随机数进行硬编码或将Pi用作输入。 Pi的硬编码值和15个随机数字(可以跳过,0.因为您知道它在0到1之间)都将包括在字节数中。 如果您的语言没有要求的精度,则可以在以下限制下使用较低的精度 Pi的数字必须精确到您所拥有的精度 输出的值不能超过保证正确的值,即,如果精度只允许8个精确的小数,则不能输出15位数字。 即使您的程序仅支持8位数字,Pi的硬编码值也将计为16个字节(不需要小数点)。 随机数的输入值将计为15个字节(您不需要0.。这是因为精度较低的语言不应有不公平的优势。 该程序必须支持5位小数精度(至少)。 编辑:要验证答案:应该以某种方式打印随机数,但是此操作不必包含在字节数中。因此,例如,如果可以print r在脚本末尾插入a ,则该部分不会增加得分。 如果它是另一项必要操作的一部分,则不能减去这些字节。也就是说,如果代码是print pi, r,则只能减去, r。 如果你要插入的部分代码中的几个地方,请包括两个版本(一个是打印出随机数,并且不带有注释,如一个:_p和_oNo,需要打印的随机数_p确实xxx和_oNo不yyy。_p并且_oNo不会包含在字节数中。 以字节为单位的最短代码获胜。 排行榜 这篇文章底部的Stack Snippet会根据答案a)生成目录,a)作为每种语言最短解决方案的列表,b)作为整体排行榜。 为确保您的答案显示出来,请使用以下Markdown模板以标题开头。 ## Language Name, N bytes …
27 code-golf  string  random  pi 

17
计算多项式系数
是时候让所有人都可以参加另一个轻松的挑战了! 多项式定理指出: 括号中的表达式是多项式系数,定义为: 允许项k i覆盖n的所有整数分区,将给出Pascal的m -simplex的第n级。您的任务是计算该系数。 任务 编写一个程序或函数,该程序或函数使用m个数字n,k 1,k 2,...,k m-1,并输出或返回相应的多项式系数。如果需要,您的程序可以选择将m作为附加参数。注意,k m不在输入中。 这些数字可以按喜欢的任何格式输入,例如分组到列表中或以一元编码或其他方式输入,只要多项式系数的实际计算是由您的代码执行的,而不是由编码过程执行的。 输出格式同样具有灵活性。 所有代码应在不到一分钟的时间内运行n和m,直到1000。 不用担心整数溢出。 不允许设计用于计算多项式系数的内置函数。 有标准漏洞。 计分 这就是代码高尔夫:最短的解决方案以字节为单位。 测试用例 Input: 3, [2, 0] Output: 3 Input: 3, [1, 1] Output: 6 Input: 11, [1, 4, 4] Output: 34650 Input: 4, [1,2] Output: 12 Input: 15, [5,4,3,2] Output: 37837800 …

18
连续整数之和
在任何人说任何事,类似的和类似的。但这不是骗子。 一些正整数可以写为至少两个连续的正整数之和。例如,9=2+3+4=4+5。编写一个函数,将一个正整数作为其输入,并输出与之相加的最长连续正整数的最长序列作为输出(任何格式都是可以接受的,但是如果输出是由递增序列隔开的-5字节,则+如上所示) 。如果不存在这样的顺序,则应打印数字本身。 这是代码高尔夫。适用标准规则。以字节为单位的最短代码获胜。 样本(请注意格式会有所不同) Input: 9 Output: 2,3,4 Input: 8 Output: 8 Input: 25 Output: [3,4,5,6,7]

18
主要因素之和
2013年是主要因素3*11*61。2014年是主要因素2*19*53。关于这些因式分解的一个有趣特性是,在2013和2014的因式分解中存在不同的素数,它们的总和为相同的数量:11+61=19+53=72。 编写一个程序或函数,该程序或函数的输入为两个大于1的正整数,如果存在一个选定的素数之和等于第二个选定的素数之和,则返回真值。否则为假值。 澄清说明 可以使用两个以上的主要因子。总数中并非所有的素数因子都需要使用。两个数中使用的素数的数量不必相等。 即使在数的因式分解中将质数提高到大于1的幂,它也只能在该数的质数之和中使用一次。 1不是素数。 两个输入数字均小于2^32-1。 测试用例 5,6 5=5 6=2*3 5=2+3 ==>True 2013,2014 2013=3*11*61 2014=2*19*53 11+61=19+53 ==>True 8,15 8=2^3 15=3*5 No possible sum ==>False 21,25 21=3*7 25=5^2 No possible sum (can't do 3+7=5+5 because of exponent) ==>False 这是代码高尔夫。适用标准规则。以字节为单位的最短代码获胜。

7
邻国
有没有想过哪个国家包围另一个国家?有时候,我也这样做,这是它的挑战。 我在代码块的底部提供了您必须识别的国家和地区列表。您需要创建一个完整的程序,以(使用您的语言)以最方便的方式将相邻国家/地区的国家/地区列表输出到输入国家/地区。因此,例如: >>> "United Kingdom" 1 Republic of Ireland 因为"United Kingdom"是国家/地区名称,并且1是您要制作的层数。实际上,任何层数(0除外)都将返回Republic of Ireland,因为通往其他任何国家的道路都很艰巨。 参考图: 示例(括号中的任何内容都是注释)(显然,输出顺序无关紧要): >>> Bhutan 2 India (layer 1, touching Bhutan) China (layer 1, touching Bhutan) Bangladesh (layer 2, touching India) Myanmar (layer 2, touching China and India) Laos (layer 2, touching China) Vietnam (layer 2, touching China) …

4
逆转正则表达式
挑战 给定有效的正则表达式,输出匹配相同字符串集但反向的正则表达式。 任务 这个挑战使用最基本的正则表达式操作:^,$,?,+,*,[],{},|。没有捕获组或任何复杂的东西。特殊字符可以转义。 样本输入/输出 注意:永远不会给出无效的输入,对于给定的输入,通常会有多个可能的答案! Input | Sample Output -----------|------------- abc | cba tuv? | v?ut a(b|c) | (c|b)a 1[23] | [23]1 a([bc]|cd) | (dc|[bc])a ^a[^bc]d$ | ^d[^bc]a$ x[yz]{1,2} | [yz]{1,2}x p{2} | p{2} q{7,} | q{7,} \[c[de] | [de]c\[ ab[c | <output undefined> a(?bc) | <output undefined> a[]]bc …

15
匹配相邻词
在此挑战中,您会听到两个词:您的工作是确定它们是否相邻。 如果两个字母相邻,则: 他们是同一封信,或者 它们在字典上是相邻的。 例如,J仅与I,J和K相邻。 Z与A不相邻 如果两个单词相邻,则: 它们的长度相同,并且 每个字母都与另一个单词中的唯一字母相邻。 例如,CAT邻近SAD,如C> d,A> A,T>取值。 FREE与GRRD不相邻(每个E需要一个字母配对)。 输入输出 您传递了两个字符串,如果它们相邻,则需要返回一个真实值,否则返回一个虚假值。您应该在一分钟内返回以下所有测试用例。 您可以假设字符串仅包含大写字母。 这两个字符串可以作为列表传递,也可以串联在一起,带或不带引号。 测试用例 真相: A A A B C B DD CE DE FC ABCD BCDE AACC DBBB DJENSKE FDJCLMT DEFGHIJKL HJLEHMCHE IKLIJJLIJKKL LJLJLJLJLJHI ACEGIKMOQSUWY BLNPRDFTVHXJZ QQSQQRRQSTTUQQRRRS PQTTPPTTQTPQPPQRTP ELKNSDUUUELSKJFESD DKJELKNSUELSDUFEUS 虚假: A C A Z …

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.