Questions tagged «code-golf»

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

9
Schwartzman教授的Acme犬解码器2000
介绍 我们-尤其是我们中间的极客,他们往往是粉丝-都记得这本古老的漫画《远方》: 显然,施瓦兹曼教授本可以稍稍提高一下自己的编程技能,然后再使用他的发明。但是您可以自己复制它吗...使用尽可能少的字节? 输入规格 您必须创建一个脚本,将狗的声音转换为适当的音调“嘿”。这是纯代码高尔夫;最低字节数获胜。 您的输入将包含以下标记的某种组合: Bark,Baark,Baaark,Baaaark,...(即,B*rk 具有至少1 a替换星号) Woof,Wooof,Woooof,...(W*f与至少2个 o小号替换星号) Grr,Grrr,Grrrr,...,(G后面至少2个 r S) 任何数量的.(句号),!(感叹号)和/或?(问号)字符,它们可能出现在输入中的任何位置 再次注意,Woof基于和Grr的令牌始终分别至少需要两个 o s和rs;Wof和Gr是不是有效的标记。 令牌可以持续多长时间没有限制(例如,令牌中可以有多少个重复的as Bark);但是,您的解码器只需要正确使用总s,s或s 最多10个a的输入令牌即可通过此挑战。or 输出规格 忠于Schwartzman的设计,您的犬类解码器程序必须将其处理为以下输出文本: Bark,Woof和Grr成为Hey; Baark,Wooof和Grrr成为Heyy; Baaark,Woooof和Grrrr成为Heyyy; 等等 对于所有Bark基于令牌的令牌,基于y输出Hey的令牌中的as 数量必须等于s 的数量; 对于所有Woof基于令牌的令牌,基于y输出Hey的令牌中的s 数量必须比o s 的数量少一; 对于所有Grr基于令牌的令牌,基于y输出Hey的令牌中的s 数量必须比r s 的数量少一; 所有标点符号(.,!和?)均保持不变。 切记y仅从Woofs和Grrs 的输出中删除一个!Baaaaaaaark?8 a秒的输入将变为8 秒Heyyyyyyyy?的匹配集y。但是,Woooooooof?只有Heyyyyyyy?7 ys。 同样,如果您可以让您的程序适用于无限制大小的输入令牌,那很好,但是出于此挑战的目的,将仅检查您的程序以确保其对于不超过10个重复字母的输入令牌正常工作。 输入中所有基于Bark-,Woof-和- Grr的令牌都假定以大写字母开头。因此,没有必要办理转Bark grrr进Hey heyy或任何类似。 输入和输出示例 …
31 code-golf  string 

21
头,肩膀,膝盖和脚趾,膝盖和脚趾
介绍: 我想我们都知道,并且它可能已翻译成多种语言:“儿童的头部,肩膀,膝盖和脚趾”儿童歌曲: 头部,肩膀,膝盖和脚趾,膝盖和脚趾 头部,肩膀,膝盖和脚趾,膝盖和脚趾 以及眼睛和耳朵以及嘴和鼻子 头部,肩膀,膝盖和脚趾,膝盖和脚趾 维基百科 挑战: 输入:一个正整数。 输出:根据输入作为第n个索引输出以下单词之一: head shoulders knees toes eyes ears mouth nose 在这里,主体部分附加了索引: Head (0), shoulders (1), knees (2) and toes (3), knees (4) and toes (5) Head (6), shoulders (7), knees (8) and toes (9), knees (10) and toes (11) And eyes (12) …

5
认识藤蔓
背景 我有一堆破旧的黑白图像。其中有些描绘的是藤蔓爬在墙上,有些则没有。您的任务是为我分类。 输入输出 您的输入是矩形A的二维数组,以任何方便的格式给出。它不会为空,但不能保证同时包含0和1。如果满足以下条件,则阵列将描绘出藤蔓: A的底行至少包含1。这些是葡萄树的根。 A中的每个1 通过1s路径连接到最下面一行,该路径仅向左,向右和向下(不向上,也不对角线)移动。这些路径是葡萄树的分支。 如果输入描述的是藤本植物,则输出为一致的真实值,否则为一致的虚假值。 例子 这个数组描绘了一个藤蔓: 0 0 1 0 0 1 0 1 1 0 0 1 0 1 0 1 1 1 1 1 0 1 0 1 0 1 1 1 0 1 0 0 1 0 1 1 此输入未描述藤本植物,因为在右边框的中间有一个1,它没有通过分支连接到根部: 0 0 0 …

30
最小公倍数
一组正整数的最小公倍数A是最小的正整数B,使得每个kin都A存在一个正整数n,使得k*n = B。 给定至少两个正整数作为输入,输出它们的最小公倍数。 规则 允许使用内置程序,但是如果您的解决方案使用一个内置程序,则建议您包括一个不使用GCD / LCM内置程序的替代解决方案。但是,替代解决方案完全不会计入您的分数,因此它是完全可选的。 所有输入和输出将在您的语言的本机表示范围内。如果您的语言本身具有任意大整数的能力,那么您的解决方案必须适用于任意大输入和输出。 测试用例 [7, 2] -> 14 [8, 1] -> 8 [6, 4, 8] -> 24 [8, 2, 1, 10] -> 40 [9, 6, 2, 1, 5] -> 90 [5, 5, 7, 1, 1] -> 35 [4, 13, 8, 8, 11, 1] -> …

11
生成一个“ GitHub”头像
背景/说明 注意:正如@HelkaHomba指出的那样,实际的GitHub identicons 实际上并不是随机的,而是基于用户名的哈希值 默认的GitHub头像是5x5像素的图像。随机选择一种颜色,然后使用该颜色在一侧(右侧或左侧,2x5大小)填充随机像素。然后,将这一侧复制并翻转到y轴的另一侧。剩余的未填充的像素为#F0F0F0或rgb(240,240,240)。 然后使用与以前相同的颜色随机填充中心列的像素(大小为1x5)。 输出量 注意:对于这个挑战,我们将忽略包围GitHub头像的空间 该程序应输出5x5像素的图像文件。见http://meta.codegolf.stackexchange.com/a/9095/42499的细节 例子 注意:这些显然是从5x5放大的,因此您可以看到它们 祝好运!

20
扩展指数
给定两个大于1的整数A和B,按此顺序输出四个数学表达式: 普通表达式A ^ B(A等于幂B)。例如,如果A = 2且B = 3,2^3...。 根据A的重复乘法,A ^ B的展开2*2*2。 A ^ B的扩展以重复添加A为依据,例如 2+2+2+2。 A ^ B在重复加1方面的扩展,例如 1+1+1+1+1+1+1+1。 可以以任何合理的方式输出这四个表达式,只要它们顺序正确且明显不同即可。例如,您可以将它们放在列表中,或将它们打印在单独的行中 2^3 2*2*2 2+2+2+2 1+1+1+1+1+1+1+1 或在等号分隔的一行上: 2^3=2*2*2=2+2+2+2=1+1+1+1+1+1+1+1 可能在数学运算符旁边插入空格,因此 2^3 = 2 * 2 * 2 = 2 + 2 + 2 + 2 = 1 + 1 + 1 + 1 …

30
返回带平方数和的整数
介绍和信誉 我们都知道并喜欢我们很棒的规则,可以测试数字是11还是3的整数倍,这只是数字位数的巧妙总和。现在,通过要求您计算数字的总和,然后检查结果是否为理想的整数平方,这一挑战将其推向了一个新的高度,这两个操作通常都无法在很短的时间内完成。由于在查看数字时也很难看到此属性,因此我们希望对整个数字列表都执行此操作,以节省人工。因此,这就是您的挑战! 这是我大学功能编程课程中的一项作业。这项作业现在已经关闭,并且已经在课堂上进行了讨论,我已经得到了我教授的允许在这里发布(我明确要求)。 规格 输入值 您的输入是采用任何标准I / O格式的非负整数列表。 您可以根据自己的语言选择列表格式 输出量 输出是任何标准I / O格式的整数列表。 该怎么办? 从输入列表中筛选出每个数字的总和不是平方(整数)的整数。 元素的顺序可能不会更改,例如,如果得到[1,5,9],则可能无法返回[9,1] 潜在的极端情况 0 是一个非负整数,从而有效的输入和0也是有效的整数根,例如0计数为整数正方形。 空列表也是有效的输入和输出。 谁赢? 这是代码高尔夫球,因此最短的答案以字节为单位! 标准规则当然适用。 测试用例 [1,4,9,16,25,1111] -> [1,4,9,1111] [1431,2,0,22,999999999] -> [1431,0,22,999999999] [22228,4,113125,22345] -> [22228,4,22345] [] -> [] [421337,99,123456789,1133557799] -> [] 分步示例 Example input: [1337,4444] Handling first number: Sum of the digits …
31 code-golf  math 

20
法鲁洗牌数组
阿法鲁洗牌是经常使用的魔术到“洗牌”甲板的技术。要执行Faro随机播放,您首先将卡座切成相等的两半,然后将这两个半插入。例如 [1 2 3 4 5 6 7 8] 法鲁洗牌是 [1 5 2 6 3 7 4 8] 可以重复多次。有趣的是,如果重复此次数足够多,您将总是回到原始数组。例如: [1 2 3 4 5 6 7 8] [1 5 2 6 3 7 4 8] [1 3 5 7 2 4 6 8] [1 2 3 4 5 6 7 …
31 code-golf  permutations  card-games  code-golf  graphical-output  random  code-golf  image-processing  color  code-golf  primes  code-golf  math  arithmetic  combinatorics  decision-problem  code-golf  sequence  number-theory  binary  code-golf  number-theory  set-theory  code-golf  hashing  code-golf  game  card-games  code-golf  ascii-art  code-golf  arithmetic  array-manipulation  jelly  code-golf  string  array-manipulation  code-golf  sorting  code-challenge  code-golf  number  date  binary  code-golf  arithmetic  code-golf  math  number  linear-algebra  polynomials  code-golf  ascii-art  code-golf  grid  decision-problem  code-golf  string  combinatorics  code-golf  string  kolmogorov-complexity  arithmetic  date  code-golf  number  data-structures  code-golf  ascii-art  kolmogorov-complexity  code-golf  string  ascii-art  code-golf  ascii-art  kolmogorov-complexity  code-golf  array-manipulation 

30
慢慢地将一串变成另一个
挑战 给定两个字符串/一个字符串数组,输出第一个字符串缓慢缩小并扩展回第二个字符串。 您可以假设字符串始终以相同的字符开头。 例 Input: "Test", "Testing" Output: Test Tes Te T Te Tes Test Testi Testin Testing 首先,您输出第一个单词: Test 然后,您继续删除一个字母,直到字符串长度为一个字符为止: Tes Te T 然后继续添加第二个单词的一个字母,直到完成: Te Tes Test Testi Testin Testing (如果两个字符串都长一个字符,则只需将其中一个输出一次。) 测试用例 "Hello!", "Hi." Hello! Hello Hell Hel He H Hi Hi. "O", "O" O "z", "zz" z zz …
31 code-golf  string 

30
这个数字是什么基数?
这是一个很好的简单挑战: 给定一个代表未知基数的字符串,请确定该数字可能位于的最低基数。该字符串仅包含0-9, a-z。如果您愿意,可以选择使用大写字母而不是小写字母,但是请指定。您必须以十进制输出这个最低的底数。 这是一个更具体的例子。如果输入字符串为“ 01234”,则该数字不可能为二进制,因为2、3和4都未定义为二进制。同样,此数字不能以3或4为底。因此,此数字必须以5或更高的底数为基础,因此应输出“ 5”。 您的代码必须适用于以1为底(一元,全为0)和以36为底(“ 0-9”和“ a-z”)的任何底。 您可以接受输入并以任何合理的格式提供输出。允许进行基本转换内置函数。像往常一样,存在标准漏洞,而最短的答案是以字节为单位! 测试IO: #Input #Output 00000 --> 1 123456 --> 7 ff --> 16 4815162342 --> 9 42 --> 5 codegolf --> 25 0123456789abcdefghijklmnopqrstuvwxyz --> 36

30
这是一个ump撞的词吗?
(受难题上的挑战启发- 该难题的SPOILERS在下面,因此如果您想自己解决难题,请在这里停止阅读!) 如果单词中的字母在字母上出现的时间晚于单词中的前一个字母,我们称这为两个字母之间的上升。否则,包括同一个字母在内,就称为坠落。 例如,单词ACE有两个上升(Ato C和Cto E)并且没有下降,而THE有两个下降(Tto H和Hto E)并且没有上升。 如果上升和下降的顺序交替出现,我们将其称为“ 颠簸”。例如,BUMP上升(B至U),下降(U至M),上升(M至P)。请注意,第一个序列不必是上升- BALD下降-下降-下降,并且也是颠簸的。 挑战 给定一个单词,输出是否为Bumpy。 输入值 仅由ASCII字母([A-Z]或任何形式)组成的单词(不一定是词典单词)。[a-z] 您选择输入是全部大写还是全部小写,但必须一致。 该单词的长度至少为3个字符。 输出量 输入的单词是Bumpy(真)还是Bumpy(假)的真实/假值。 规则 完整的程序或功能都是可以接受的。 禁止出现标准漏洞。 这是代码高尔夫球,因此所有常见的高​​尔夫规则都适用,并且最短的代码(以字节为单位)获胜。 例子 真相: ABA ABB BAB BUMP BALD BALDY UPWARD EXAMINATION AZBYCXDWEVFUGTHSIRJQKPLOMN 虚假: AAA BBA ACE THE BUMPY BALDING ABCDEFGHIJKLMNOPQRSTUVWXYZ 排行榜 这是一个堆栈片段,用于按语言生成常规排行榜和获胜者概述。 为确保您的答案显示出来,请使用以下Markdown模板以标题开头。 # Language Name, N bytes …

18
光束会命中吗?
激光沿正交的四个方向之一发射直光束<>^v。确定它是否会击中O矩形网格上的目标。 这些都将击中(True): ..... ...O. ..... ...^. ..... >O. ... v.... O.... ........... ........... O.........< ........... 这些会错过(错误): ...... ...... .^..O. ...... .....> O..... ...... ...... .O. ... .v. .....<. ..O.... 输入:.大小至少为2x2的矩形网格,正好有一个目标O,一个激光是之一<>^v。这些行可以是字符串列表,二维数组或嵌套的字符列表,也可以是单个新行分隔的字符串,并带有可选的尾随新行。 输出:如果激光束击中目标,则真值保持一致,如果未击中,则真值保持不变。 我将考虑不使用正则表达式(或内置的基于模式的字符串匹配)的提交作为单独的类别。如果(no regex)在语言名称后面加上空格,您的答案将单独出现在排行榜中。 显示代码段 var QUESTION_ID=80196,OVERRIDE_USER=20260;function answersUrl(e){return"https://api.stackexchange.com/2.2/questions/80196/answers?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+ANSWER_FILTER}function commentUrl(e,s){return"https://api.stackexchange.com/2.2/answers/"+s.join(";")+"/comments?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+COMMENT_FILTER}function getAnswers(){jQuery.ajax({url:answersUrl(answer_page++),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){answers.push.apply(answers,e.items),answers_hash=[],answer_ids=[],e.items.forEach(function(e){e.comments=[];var s=+e.share_link.match(/\d+/);answer_ids.push(s),answers_hash[s]=e}),e.has_more||(more_answers=!1),comment_page=1,getComments()}})}function getComments(){jQuery.ajax({url:commentUrl(comment_page++,answer_ids),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){e.items.forEach(function(e){e.owner.user_id===OVERRIDE_USER&&answers_hash[e.post_id].comments.push(e)}),e.has_more?getComments():more_answers?getAnswers():process()}})}function getAuthorName(e){return e.owner.display_name}function process(){var e=[];answers.forEach(function(s){var r=s.body;s.comments.forEach(function(e){OVERRIDE_REG.test(e.body)&&(r="<h1>"+e.body.replace(OVERRIDE_REG,"")+"</h1>")});var a=r.match(SCORE_REG);a&&e.push({user:getAuthorName(s),size:+a[2],language:a[1],link:s.share_link})}),e.sort(function(e,s){var r=e.size,a=s.size;return r-a});var s={},r=1,a=null,n=1;e.forEach(function(e){e.size!=a&&(n=r),a=e.size,++r;var …

9
线之间
前几天在方形纸上乱涂乱画时,我想到了上面的负数数字字体。如果尚未发现,上述形状之间的间隔会产生黄金分割率1.618033988749。在此挑战中,您的任务是将数字作为输入并完全按照上面的示例所示呈现它。 这些是如何创建的。所有行将位于规则的网格上,因此各个数字由少量的网格单元组成。这是10位数字的形状(此挑战我们将忽略小数点): 是的,这7与顶部的黄金分割率示例不同。我有点搞砸了。我们将继续进行。 请注意每个数字是五个单元格高,三个单元格宽。要渲染数字,您可以想象将其所有数字彼此相邻放置,以使每对数字之间恰好有一个空列。例如,以319输入为例: 注意,我们添加了一个前导和尾随的空列。现在我们反转单元格: 然后,输出应为所得多边形的边界: 当然,您可以通过任何其他方式生成结果,只要呈现的输出看起来相同即可。 输入值 您可以编写程序或函数,将通过STDIN(或最接近的替代方案)的输入,命令行参数或函数参数作为字符串或数字列表。(您不能输入数字,因为那将不允许您支持前导零。) 您可以假设输入中将不再有16位数字。 输出量 输出可以显示在屏幕上或以通用图像格式写入文件。 您可以同时使用光栅图形和矢量图形。 在任何一种情况下,基础网格的单元的纵横比都必须为1(即,单元应为正方形)。 对于光栅图形,每个像元应至少覆盖20 x 20像素。 这些线的宽度不得超过像元大小的10%。由于这里的别名,我愿意留出一两个像素的余地。 线条和背景可以是任何两种可以明显区分的颜色,但是线条所形成的形状一定不能填充(也就是说,内部也应该是背景颜色)。 每个闭环内不得有间隙。 当然,整个结果必须可见。 测试用例 这是10个输入,它们一起涵盖所有可能的相邻数字对,以及每个可能的前导和尾随数字: 07299361548 19887620534 21456837709 39284106657 49085527316 59178604432 69471338025 79581224630 89674235011 97518264003 这是这些的预期结果: 确保您的代码在给出一个数字时也可以工作(我不想在这里包括预期的结果,因为它们应该很明显,并且测试用例部分已经足够膨胀了)。

9
建立一个扭曲的“ Hello world!”
您的工作很简单,编写一个可打印的程序Hello, world!,将其扭曲即可创建一个可打印的程序Twister!。 弦如何扭曲 扭曲算法非常简单。每列均按其索引向下移动(col 0下移0,col 1下移1,...)。列移位换行到顶部。看起来像这样: a ba cba ---- cba cb c 线下的所有内容都环绕到顶部。真实的例子: Original: \\\\\\\\\\\\ ............ ............ ............ Twisted: \...\...\... .\...\...\.. ..\...\...\. ...\...\...\ (其他示例和您喜欢的语言在这里) 计分 您的程序必须是填充矩形。这是代码高尔夫球,因此最低字节数为准! 规则 您的第一个程序必须打印Hello, world!。只允许一个尾随换行符。 您的第一个和第二个程序必须使用相同的语言。 您的第二个程序必须打印Twister!。只允许一个尾随换行符。 您的程序必须至少有2行2列。

8
对这些詹姆斯·邦德评分进行排序
介绍 我的祖父是詹姆斯·邦德(James Bond)的粉丝,但他始终不确定如何对他最喜欢的演员进行排名。因此,他总是在列出清单,这是很多工作。他要求我制作一个程序,使他的生活更轻松,但是我没有时间这样做,我必须工作!所以我指望你们。 挑战 挑战很简单。输入将包含一个列表,格式如下: <number> <space> <actor's name> <newline> 您的任务是根据行首,从末尾到第一个结束的数字对它们进行排序。所有号码都应删除。 但是,我爷爷有时会犯错误。因此,您将需要验证数据。如果列表中的名称之一不涉及扮演邦德的演员之一,则需要将其丢弃。万一重复,应该删除重复,名称应保持与之关联的最低权重(示例3)。 对可以有多少行没有限制。 输出只需是某种形式的列表,无论是数组,逗号分隔的字符串,仅由空格分隔的值还是其他所有内容,即 Pierce Brosnan, Sean Connery, David Niven 尾随换行符或空格是允许的。 输入和输出示例 输入: 1肖恩·康纳利 2艾玛·沃特森 5蒂莫西·道尔顿 4罗杰·摩尔 3丹尼尔·克雷格 输出: 蒂莫西·道尔顿,罗杰·摩尔,丹尼尔·克雷格,肖恩·康纳利 输入: 2蒂莫西·道尔顿 4乔治·拉岑比 5乔治·拉岑比 3鲍勃·西蒙斯 输出: 乔治·拉岑比,鲍勃·西蒙斯,蒂莫西·道尔顿 输入: 3肖恩·康纳利 2皮尔斯·布鲁斯南 1肖恩·康纳利 输出: 皮尔斯·布鲁斯南(Sean Connery) 因为这是代码高尔夫球,所以最短的代码(以字节为单位)获胜! 附录 扮演邦德角色的演员名单: 巴里·尼尔森 鲍勃·西蒙斯 肖恩·康纳利 …

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.