Questions tagged «code-golf»

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

30
计算整数的二进制值中最长的1序列
目标 给定一个非负整数,创建一个函数,该函数返回该整数的二进制值中最大的连续1的个数的起始位置。 得到输入后0,返回0。 如果数字具有多个等长的条纹,则必须返回最后一个条纹的位置。 输入值 大于或等于 0 的整数。 输出量 整数,如下所述。 规则 这是代码高尔夫球,因此每种语言中以字节为单位的最短代码为准。 禁止出现标准漏洞。 示例和测试用例 例子1 您的函数传递整数142 142等于二进制的10001110 最长条纹是“ 111”(三个条纹) 条纹从2 ^ 1位置开始 您的函数返回1作为结果 例子2 您的函数被传递给整数48 48等于110000的二进制 最长条纹是“ 11”(两个条纹) 条纹从2 ^ 4位置开始 您的函数返回4作为结果 例子3 您的函数被传递给整数750 750等于二进制的1011101110 最长条纹是“ 111”(三个条纹) 由于存在两个等长的条纹,因此我们返回后面的条纹。 以后的条纹开始于2 ^ 5位置 您的函数返回5作为结果

8
Scroll Word的字体大小选择器
Word 和按钮会根据以下规则更改字体大小:A▲ᴀ▼ 起始字体大小为11。 如果在字体大小为1时按,则大小保持为1。ᴀ▼ 字体大小在1 – 12范围内变化1点。 字体大小在12 – 28范围内变化2点。 选择范围为28 – 80的28、36、48、72和80。 字体大小在80到1630范围内以10磅变化。 字体大小在1630 – 1638范围内变化8点。 如果在字体大小为1638时按,则大小保持为1638。A▲ 任务 尽可能以最少的字节为单位,以任何合理的格式给定一组按钮按下时,确定最终的字体大小。 例子 [3,-1,2],意思是:结果是18。A▲A▲A▲ᴀ▼A▲A▲ 一些可能的格式是'^^^v^^',[1 1 1 -1 1 1],[True,True,True,False,True,True],["+","+","+","-","+","+"],"‘‘‘’‘‘","⛄️⛄️⛄️🌴⛄️⛄️",111011,"CaB",等... [2]:14 [-1]:10 [13]:80 [-11,1]:2 [11,-1]:36 [170,-1]:1630 [2000,-2,100]:1638

20
卓越的通过时间
有时候,当我真的很无聊时,我喜欢取一个非负整数数组的总和。我只取长度为2的幂的数组的总和。不幸的是我经常犯错误。幸运的是,我通过以下方式跟踪自己的工作: 我添加成对的相邻数字,直到只剩下一个。例如: 6 + 18 + 9 + 6 + 6 + 3 + 8 + 10 = 24 + 15 + 9 + 18 = 39 + 27 = 66 您的工作是确定我是否在某个地方犯了错误。您既可以将输入传递给函数,也可以从标准输入中读取。可以打印或返回输出。 输入:数组/列表/等。非负整数,如果您的语言需要,还可以包含该数组的长度。该数组将是从左到右然后从上到下读取的所有数字。例如,上面的数组将变为: [[6, 18, 9, 6, 6, 3, 8, 10], [24, 15, 9, 18], [39, 27], [66]] 或者, [6, …

30
将标准中的数字相加
考虑每行一个整数的流/文件。例如: 123 5 99 您的代码应输出这些数字的总和,即227。 输入格式严格为每行一个整数。例如,您不能假定输入作为整数数组在一行上。 您可以从STDIN中以文件名或具有您选择的名称的文件形式进行输入。您可以选择哪一个。不允许有其他获取输入的方法。 输入将包含至少一个整数。您可以假设所有整数均为非负数,并且它们的总和小于。232

30
是真的吗 问果冻!
背景 受到Octave(以及扩展为MATL)对真/伪矩阵的非常方便的解释的启发,Jelly得到了Ȧ(所有八度音阶)原子。 Ȧ将数组作为输入,如果数组为非空并且在树结构中的任何位置都不包含数字0(整数,浮点数或复数),则返回1;否则,返回0。 例如,数组[[]]是真实的,因为它是非空的并且不包含零。而[[0]]是虚假的,因为它在最内层包含0。 任务 用您选择的编程语言编写一个完整的程序或函数,该函数或函数将可能为空的,可能是锯齿状的整数数组作为输入,并打印或返回一个真值或伪值,该值指示a 分别返回1还是0。 您的提交必须遵守以下规则。 真值和伪值对于所有输入必须一致,即,Ȧ返回1的所有数组必须映射到相同的真值,而Ȧ返回0的所有数组必须映射到相同的伪值。 由于完整程序只能将数组的字符串表示形式作为输入,因此允许这样做。但是,您必须使用语言的规范表示形式,由repr或类似形式返回。 特别是,您不能假定数组的第一个元素前面将带有空格。 如果(且仅当)您的语言不能本地表示锯齿状数组,则可以使用任何现有编程语言的规范语法对输入进行字符串表示。 如果您的语言有几种表示锯齿数组的方式(例如,列表和元组),则只需支持其中一种。 如果您的语言具有内置语言,并且本身就是对此挑战的有效提交,那么您可以不在答案中使用它。允许所有其他内置插件。 鼓励您使用数组和字符串操作发布答案,即使其中一个比另一个短得多。 所有标准代码高尔夫球规则均适用。 可能以字节为单位的最短代码获胜! 真实的测试案例 [1] [10] [[]] [[[[1]]]] [[], [1], [1, 2]] [[1], [1, [2]], [1, [2, [3]]]] [[8], [8, [9]], [8, [9, [10]]]] 虚假的测试用例 [] [0] [0, -1] [-1, 0] [[[[0]]]] [[0], [1, 2], [3, …

6
评分Tarzan的奥林匹克葡萄摇摆常规
奥运会的葡萄树摆动者在标准的树上执行常规活动。特别是,“标准树” n具有0向上穿过的顶点n-1以及将每个非零顶点连接a到其n % a下面的顶点的边。因此,例如,标准树5如下所示: 3 | 2 4 \ / 1 | 0 因为5除以3时的余数为2,所以5除以2或4时的余数为1,而5除以1时的余数为0。 今年,泰山将捍卫他的金新套路,每个始于顶点n - 1,秋千到顶点n - 2,继续顶点n - 3,等等,直到最后他卸除到顶点0。 例行程序的分数是每个挥杆(包括拆卸)的分数之和,挥杆的分数是树内起点和终点之间的距离。因此,Tarzan在标准树5上的例程得分为6: 从摇摆4到3得分3分(向下,向上,向上), 从摇摆3到2得分(下降)一分, 从摆动2到1得分1分(向下),并且 从下来1,0得分为1分(下降)。 编写一个程序或函数,给定一个正整数n,该程序或函数将计算Tarzan例程在Standard Tree上的得分n。样本输入和输出: 1 -> 0 2 -> 1 3 -> 2 4 -> 6 5 -> 6 6 -> 12 7 -> 12 8 …
32 code-golf  math  number  number-theory  code-golf  code-golf  restricted-source  programming-puzzle  css  code-golf  parsing  code-golf  random  encryption  code-golf  ascii-art  fractal  code-golf  math  code-golf  sorting  graph-theory  path-finding  permutations  code-golf  tetris  code-golf  card-games  code-golf  math  sequence  rational-numbers  code-golf  chess  code-golf  string  geometry  grid  code-golf  ascii-art  grid  code-golf  sequence  integer  code-golf  math  number-theory  packing  polyomino  code-golf  math  code-golf  string  quine  permutations  code-golf  math  code-golf  image-processing  optical-char-recognition  code-golf  string  kolmogorov-complexity  sequence  integer  code-golf  number  permutations  palindrome  code-golf  kolmogorov-complexity  code-golf  number  sequence  string  fewest-operations  code-golf  string  kolmogorov-complexity  sequence  primes  code-golf  string  ascii-art  code-golf  string  number  alphabet  code-golf  counting  code-golf  number  sequence  number-theory  primes  code-golf  subsequence  word-search 

30
计算中位数
挑战 给定一个非空的实数列表,请计算其中位数。 定义 中位数计算如下:首先对列表进行排序, 如果条目数为奇数,则中位数为排序列表中心的值, 否则,中位数是最接近排序列表中心的两个值的算术平均值。 例子 [1,2,3,4,5,6,7,8,9] -> 5 [1,4,3,2] -> 2.5 [1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,-5,100000,1.3,1.4] -> 1.5 [1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,-5,100000,1.3,1.4] -> 1.5

16
谁最高?
N个孩子按一定顺序排列,没有两个孩子分享他们的确切大小。每个人只能将身高与其近邻比较。当老师大喊“如果你最高,举手”时,如果他们比两个邻居都高,他们就会高声喊叫,并且他们会同时举高声。如果只有一个人举手,他将获胜。如果不止一个举手,则将他们全部从该行中淘汰(保留其余孩子的顺序),然​​后重复该过程。 编写一个程序,该程序采用一组不同的整数(可以假定它们严格为正),并输出此游戏的获胜者。这是代码高尔夫球,因此最短的代码获胜。 示例(显示了中间阶段): 5 3 9 8 7→3 8 7→8 1 2 9 4→9 9 3 8 7 4 12 5→3 7 4 5 →3 4 →4 现任领导人: 果冻:17个字节[作者:Dennis♦] MATL:20个字节[作者:Luis Mendo] APL:28个字节[voidhawk] k:40个字节[Paul Kerrigan撰写] 还有一场Python之战。仍在等待更多的高尔夫语言出现。 我目前接受Dennis♦的回答-如果有新的获奖者,我将更新选择。

2
在Wireworld中建立数字时钟
受到“人生游戏”问题的启发。 Wireworld模拟流经“电线”的“电子”,其简单排列会产生典型的逻辑门行为。 我挑战您在Wireworld蜂窝自动机中构建数字时钟。您的时钟必须以通常的方式从00:00向上计数,或者使用AM / PM指示器从11:59向上计数,然后重设。 您的输入应明显分为两部分。A部分应包含所有非显示逻辑,所有涉及数字递增和循环的部分。B部分将是显示器及其驱动逻辑。这两个部分之间的唯一连接应该是代表BCD中时间的四位数字的16根电线(如果信号不连续,则AM / PM指示器的一根可选电线,信号时钟线的一根可选电线)。(编辑:总为零的导线可以省略) 时钟行为的时序应保持一致。对于状态之间的1440个过渡中的每个过渡,模拟应采用相同的滴答数。16条导线上的任何电子都应同时从A部分发出,并开始平行跳闸。 这是一场代码高尔夫比赛。您的分数是围绕零件A的轴对齐边界框的面积。 类似地,如果这是文本语言,则您的得分将是产生四个4位输出的时钟管理功能的大小,该输出包含一个循环和4个计数器的逻辑,而不是解码和打印该输出的功能。 B部分的大小可以根据需要选择。这样做只是为了使提交的输出可以被运行它的人看到,因为没有简单的方法可以简单地“调试” wireworld电路的输出。在线有多个BCD-> 7段电路。随意使用任意一个,如果需要时钟信号线,则可以自己制作,并以类似于数字的比例显示AM / PM指示器。 编辑:B部分现在是可选的。如果您只有A部分的BCD输出,请随时提交。确认时钟正常工作将更加繁琐,但是我可以在暂停的模拟中读取一行位。

16
这是字节的挑战
我需要别再想笨拙的名字了 您的任务是创建尽可能多的代码片段(内置输入和输出的程序),函数或完整程序,以对您所用语言的整数数组版本进行升序排序,但是对于每个程序,只允许使用使用以前的程序中未使用过的ASCII字符(如果直接将其指定为非ASCII,则使用您的语言的代码页)。 这是一个示例答案(用换行符分隔的单独程序): Derp ASdFGHJKLAAA qwEEERtyRty 在这种(虚构的语言),我的第一个答案是Derp,它使用了D,e,r和p。在第二个程序中,不允许再次使用这些字符,但是我可以重用任意多个字符。与第三个程序相同,依此类推。 每个程序必须采用整数数组,因此类似以下内容(有关有效的输入/输出样式,请参见输入/输出示例): [3 4 -2 5 7 196 -44 -2] 并且它必须以升序将数组中的项目输出为数组: [-44 -2 -2 3 4 5 7 196] 您的分数将是提交的总数。如果有平局,则最低字节数(代码中字节数最少)获胜! 程序规则: 所有提交必须以一种语言版本(so Python 2 != Python 3)正确运行。 您的提交可以是摘要,功能或完整程序。您甚至可以混合和匹配它们-但是,您必须说出哪个是哪个,并提供工作提交的链接。 如果可能,请提供所有解决方案的在线链接。 所有提交都必须以数组(或用任何字符分隔的字符串)作为输入,并输出排序后的数组(以您语言的数组形式或- {any character}分隔的字符串)。 您不得使用ASCII(或您的语言的代码页)以外的任何字符。 例如,这些是有效的输入/输出: [1 2 3 4] (Clojure style arrays) [1, 2, 3, …

20
图和地面
资料来源:维基百科 对于这个挑战,您应该编写两个程序,它们类似于上述图像的图形和背景,以便其中一个可以打印figure,而另一个可以打印ground。特别: 编写一个无需输入并打印字符串的程序figure。程序中唯一允许的空格字符是空格(代码点0x20)和换行符(回车,0x0D,换行符,0x0A或两者的组合)。 忽略换行符,空格字符(代码点0x20)和非空格字符的数量必须相同。例如,这将是有效的程序(使用假设的语言): ab c d e f 请注意,第一行上有一个尾随空格。 如果将第n个空格字符与第n个非空白字符交换,则应打印程序ground。对于上面的示例,程序将如下所示: a b cde f 请注意在第二和第三行上有尾随空格。 无论是人物和地面的解决方案应该是在打印到标准输出相同的语言充分的程序。在任何一种情况下,您都可以打印一个可选的尾随换行符。只要STDOUT是正确的,您就可以向STDERR输出任何您想要的东西。 您可以使用任何编程语言,但是请注意,默认情况下,这些漏洞是禁止的。 这是代码高尔夫球,因此以字节为单位的最短有效答案为准。 辅助脚本 您可以使用此CJam脚本在图形和地面程序之间进行转换。只需将两者之一粘贴到“ 输入”字段中并运行程序。它还将告诉您空格和非空格的数量是否不匹配。 排行榜 显示代码段 function answersUrl(a){return"http://api.stackexchange.com/2.2/questions/"+QUESTION_ID+"/answers?page="+a+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+ANSWER_FILTER}function commentUrl(a,b){return"http://api.stackexchange.com/2.2/answers/"+b.join(";")+"/comments?page="+a+"&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(a){answers.push.apply(answers,a.items),answers_hash=[],answer_ids=[],a.items.forEach(function(a){a.comments=[];var b=+a.share_link.match(/\d+/);answer_ids.push(b),answers_hash[b]=a}),a.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(a){a.items.forEach(function(a){a.owner.user_id===OVERRIDE_USER&&answers_hash[a.post_id].comments.push(a)}),a.has_more?getComments():more_answers?getAnswers():process()}})}function getAuthorName(a){return a.owner.display_name}function process(){var a=[];answers.forEach(function(b){var c=b.body;b.comments.forEach(function(a){OVERRIDE_REG.test(a.body)&&(c="<h1>"+a.body.replace(OVERRIDE_REG,"")+"</h1>")});var d=c.match(SCORE_REG);d?a.push({user:getAuthorName(b),size:+d[2],language:d[1],link:b.share_link}):console.log(c)}),a.sort(function(a,b){var c=a.size,d=b.size;return c-d});var b={},c=1,d=null,e=1;a.forEach(function(a){a.size!=d&&(e=c),d=a.size,++c;var f=jQuery("#answer-template").html();f=f.replace("{{PLACE}}",e+".").replace("{{NAME}}",a.user).replace("{{LANGUAGE}}",a.language).replace("{{SIZE}}",a.size).replace("{{LINK}}",a.link),f=jQuery(f),jQuery("#answers").append(f);var g=a.language;g=jQuery("<a>"+g+"</a>").text(),b[g]=b[g]||{lang:a.language,lang_raw:g,user:a.user,size:a.size,link:a.link}});var f=[];for(var g in b)b.hasOwnProperty(g)&&f.push(b[g]);f.sort(function(a,b){return a.lang_raw.toLowerCase()>b.lang_raw.toLowerCase()?1:a.lang_raw.toLowerCase()<b.lang_raw.toLowerCase()?-1:0});for(var h=0;h<f.length;++h){var i=jQuery("#language-template").html(),g=f[h];i=i.replace("{{LANGUAGE}}",g.lang).replace("{{NAME}}",g.user).replace("{{SIZE}}",g.size).replace("{{LINK}}",g.link),i=jQuery(i),jQuery("#languages").append(i)}}var QUESTION_ID=101275,ANSWER_FILTER="!t)IWYnsLAZle2tQ3KqrVveCRJfxcRLe",COMMENT_FILTER="!)Q2B_A2kjfAiU78X(md6BoYk",OVERRIDE_USER=8478,answers=[],answers_hash,answer_ids,answer_page=1,more_answers=!0,comment_page;getAnswers();var SCORE_REG=/<h\d>\s*([^\n,<]*(?:<(?:[^\n>]*>[^\n<]*<\/[^\n>]*>)[^\n,<]*)*),.*?(\d+)(?=[^\n\d<>]*(?:<(?:s>[^\n<>]*<\/s>|[^\n<>]+>)[^\n\d<>]*)*<\/h\d>)/,OVERRIDE_REG=/^Override\s*header:\s*/i; …

14
数组转义-离开那里
有一天,您醒来只是发现自己陷入了阵列。您尝试走出那里,同时获取一个索引,但是似乎还有其他规则: 该数组完全用自然数填充。 如果发现自己在索引上n,请转到该索引array[n],除了: 如果您发现自己n是素数索引,则可以array[n]退后一步 示例:您4从此数组中的index开始(起始索引为0): array = [1,4,5,6,8,10,14,15,2,2,4,5,7]; -----------------^ you are here 由于您所在的字段的值为,因此第一步8将进入索引8。您登陆的字段包含值2。然后,您进入索引2作为第二步。作为2质数,您需要向后退5步,这是您的第三步。由于没有索引-3,您总共分了3个步骤成功地对数组进行了转义。 您的任务是: 编写一个程序或函数,该程序或函数接受一个数组和一个起始索引作为参数,并输出逃逸该数组的步骤数。如果无法转义数组(例如,[2,0,2]使用start-index 2=>,则不断从index 2转到0),则输出错误的值。您可以使用基于1的索引或基于0的索引,但是请指定要使用的索引。 测试用例 输入: [2,5,6,8,1,2,3], 3 输出: 1 输入: [2, 0, 2], 2 输出: false 输入:[14,1,2,5,1,3,51,5,12,3,4,41,15,4,12,243,51,2,14,51,12,11], 5; 输出: 6 最短的答案将获胜。

7
三个多义词,两个句点,两个奎因和一个密码高尔夫球挑战
产生一个程序A,以便以语言A运行它会产生程序B,而以语言B运行程序A会产生程序C。 以语言B运行时,程序B生成程序A,以语言A运行程序B时生成程序C。 程序C以语言A或语言B运行时,输出“语言错误!”。 Program | Language | Result --------|----------|---------- A | A | Program B B | B | Program A A | B | Program C B | A | Program C C | A | "Wrong language!" C | B | "Wrong language!" 您的答案应使用以下模板: 语言A /语言B,{a字节} + {b字节} …

9
删除不必要的括号
您会得到一个由字符组成的字符串0123456789+*()。您可以假定字符串始终是有效的数学表达式。 您的任务是删除不必要的括号,假设乘法的优先级高于加法。 仅在结构上不需要括号时,才应删除括号: 由于乘法具有更高的优先级:3+(4*5)=>3+4*5 由于乘法或加法关联:3*(4*5)=>3*4*5 当它们在表达式周围多余时:3*((4+5))=>3*(4+5) 由于特定的数字值,在可以简化时应保留括号: 1*(2+3) 不应该简化为 1*2+3 0*(1+0) 不应该简化为 0*1+0 例子: (4*12)+11 ==> 4*12+11 (1+2)*3 ==> (1+2)*3 3*(4*5) ==> 3*4*5 ((((523)))) ==> 523 (1+1) ==> 1+1 1*(2*(3+4)*5)*6 ==> 1*2*(3+4)*5*6 1*(2+3) ==> 1*(2+3) 0*(1+0) ==> 0*(1+0) (((2+92+82)*46*70*(24*62)+(94+25))+6) ==> (2+92+82)*46*70*24*62+94+25+6

5
斜体化ASCII艺术
给定ASCII艺术图片的输入,输出斜体的ASCII艺术。 斜体化ASCII文字: 在最后一行之前插入零空格,在倒数第二行之前插入一个空格,在倒数第三行之前插入两个空格,依此类推。 删除可能已创建的所有多余的前导空格。也就是说,如果每行n前面至少有空格,请n从每行的开头删除空格。 更换所有\以s |,所有|以s /,和所有/以s _。保持现有_相同。 确保输入内容仅包含字符\|/_和空格。 例如,输入 /\/\/\ /\/\/\ /\/\/\ /\/\/\ /\ /\ /\ /\ /\ /\ /\/\/\ /\/\/\ /\ /\ /\/\ /\ /\ /\ /\ /\ /\ /\ /\/\/\ /\/\/\ 必须输出 _|_|_| _|_|_| _|_|_| _|_|_| _| _| _| _| _| _| _|_|_| _|_|_| _| _| _|_| …

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.