Questions tagged «code-golf»

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

10
画时间线
给定代表日期的整数列表的输入,输出如下所示的ASCII美工时间轴: <-----------------------------> A B C D E 上面的时间轴是input的输出[1990, 1996, 1999, 2011, 2016]。请注意有关时间轴的几件事: 输出的第一行是一个小于符号(<),多个破折号等于dateOfLastEvent - dateOfFirstEvent + 3(因为必须加一个破折号以包含最后一个日期,然后再加上两个破折号以进行填充),然后是大于符号(>)。 在输出的第二行中,每个事件都放置在位置dateOfEvent - dateOfFirstEvent + 2(假设零索引)。因此,第一个事件放置在位置2,位置在的右侧,两个字符<,最后一个事件类似地放置在的左侧,两个字符>。 每个事件都由一个字母表示。事件1是A,事件2是B,等等。永远不会超过26个事件。如果需要,可以使用小写字母。 没有尾随空格。程序末尾仅允许在末尾添加换行符。 此外, 事件不一定按顺序给出。但是,日期仍然根据其在数组中的位置进行标记。例如,[2, 3, 1, 5, 4]必须输入的 输出 <-------> CABED 您可能会获得一个或多个事件作为输入。例如,[12345]必须输入的输出 <---> A 您可能会假设输入内容永远不会包含重复的日期。 输入可以是整数/字符串的数组/列表,也可以是由任何非数字字符分隔的单个字符串。输入的日期范围为1 ≤ x ≤ 32767。 因为这是code-golf,所以以字节为单位的最短代码将获胜。 测试用例: 32767 32715 32716 32750 32730 32729 …

13
离开巢穴
给定一个非整数的整数列表,请输出一个列表,其中包含每个嵌套级别中的整数(从最小嵌套级别开始),并按从左到右的顺序以原始顺序显示值。如果两个或更多个列表在输入列表中处于同一嵌套级别,则应将它们合并到输出中的单个列表中。输出不应包含任何空列表-仅包含列表的嵌套级别应完全跳过。 您可以假定整数都在(包括)范围内[-100, 100]。列表没有最大长度或嵌套深度。输入中将没有空列表-每个嵌套级别将至少包含一个整数或列表。 输入和输出必须在您语言的本机列表/数组/可枚举/可迭代/等中。格式,或者如果您的语言缺少序列类型,则采用任何合理,明确的格式。 例子 [1, 2, [3, [4, 5], 6, [7, [8], 9]]] => [[1, 2], [3, 6], [4, 5, 7, 9], [8]] [3, 1, [12, [14, [18], 2], 1], [[4]], 5] => [[3, 1, 5], [12, 1], [14, 2, 4], [18]] [2, 1, [[5]], 6] => [[2, 1, …

10
XOROR序列
细胞自动机确实令人着迷。通常谈论的是二进制的,即可以用数字表示的那些。但是,在我看来,这些做法已经死了。三元CA更有趣,但是我们要考虑所有ASCII!那会是多么有趣! 我将为您介绍一个简单的决定规则,而不是为每个角色决定一个规则集。为了决定下一代产品,我们看一下三个“顶部”细胞,就像细胞自动机一样。观察一个例子: QWERTY X Y Z 的“顶部” Y是WER上方,右侧,上方,上方和左侧的单元格。Y将是我要定义的函数的结果,该函数是三字符字符串的函数。的“顶部” X是 QW,或者是不存在/缺少的单元格中填充的空间。 现在,为乐趣功能!由于某种原因,我将此序列称为XOROR序列。让A是左上角单元格则charCode,B是上述细胞则charCode,并且C是右上角的细胞则charCode。然后,将得到的细胞是其charCode为特点(A XOR B) OR C,那就是(A^B)|C。(如果结果值大于126,则将其设置为(CHARCODE % 127) + 32。如果值小于32 ,则不执行任何操作。)这是种子的示例Hello, World!: S: Hello, World! 0: mmmo/c_ z}~)e m = ( )^(H)|(e) = (32^72)|101 = 104|101 = 109 (m) m = (H)^(e)|(l) = (72^101)|108 = 45|108 = 109 (m) etc. 1: …

21
这是有效的变量名吗?
目的 编写程序或函数,以检查变量名是否有效并输出1或True有效,如果变量有效但以下划线(_)开头则为0.5,然后为0或False无效。 规则 如果变量名以下划线或字母(az,AZ,_)开头,并且其余字符为下划线,字母或数字,则在大多数语言中均有效。(az,AZ,0-9,_) 输出1,或者True变量名有效,或者0,或者False无效。 但是,以下划线开头的变量不是一个好习惯,因此如果以下划线开头且名称有效,则返回0.5。 测试用例 输入项 abcdefghijklmnop 输出量 1 输入项 _test_ 输出量 0.5 (以下划线开头) 输入项 123abc 输出量 0 (以数字开头) 输入项 A_b1C_23 输出量 1 输入项 _! 输出量 0 (不是0.5,因为它无效) 输入项 magical pony1 输出量 0 (没有空间) 有标准漏洞。 这是代码高尔夫球,因此最短的代码获胜。 奖励:如果您的程序/函数输出0一个空字符串(""),则为-10%。
23 code-golf  string 

12
确定垂直切片
给定图像,输出[整个垂直截面的像素宽度] 1(如果存在)。如果不存在垂直截面,则输出0。 输入可以作为本地文件或嵌套数组提供。如果选择将输入作为嵌套数组,则白色像素应由真实值表示,而非白色像素应由伪值表示。 1.连续的全白列的数量 您可以假设 没有图像会大于1000平方像素 每个图像最多只能有一个完整的垂直部分 例子 输入: 输出: 50 57 0 0 以下是前两个示例,以黄色突出显示它们的部分:

8
用相应的字母替换数字
创建一个将数字作为输入的函数或程序,并输出一个字符串,在该字符串中,小写和大写字母的ASCII码点被其等效字符替代。 大写字母使用以下代码点: 65-90 小写字母使用以下代码点: 97-122 如果输入中的任何相邻数字等于字母的代码点,则该字母应替换输出字符串中的数字。 规则: 输入将是1到99位之间的正整数 您可以假设仅给出有效输入 您开始用整数(976-> a6而不是9L)的开头替换 输入可以采用任何合适的格式(字符串表示形式可以) 输出可以是任何合适的格式 适用标准规则 例子: 1234567 12345C 3456789 345CY 9865432 bA432 6566676869707172737475767778798081828384858687888990 ABCDEFGHIJKLMNOPQRSTUVWXYZ 6711110010100071111108102 Code000Golf 以字节为单位的最短代码获胜! 排行榜 这篇文章底部的Stack Snippet会根据答案a)生成目录,a)作为每种语言最短解决方案的列表,b)作为整体排行榜。 为确保您的答案显示出来,请使用以下Markdown模板以标题开头。 ## Language Name, N bytes N您提交的文件大小在哪里。如果您提高了分数,则可以通过打败旧分数来保持标题。例如: ## Ruby, <s>104</s> <s>101</s> 96 bytes 显示代码段 var QUESTION_ID=71735,OVERRIDE_USER=31516;function answersUrl(e){return"https://api.stackexchange.com/2.2/questions/"+QUESTION_ID+"/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 …
23 code-golf  string 

20
位数总和相等
介绍 让我们来数180。这是一个有趣的数字,因为该数字的总和等于: 1 + 8 + 0 = 9 以及该数字的平方形式,或者: 180² = 32400 > 3 + 2 + 4 + 0 + 0 = 9 这些都是9。原始数字和平方数字的位数总和相同。当然,这也可以在OEIS:A058369中找到。 任务 给定一个非负整数n,在此条件下输出第nn个正数。 测试用例(零索引) Input > Output 0 > 1 1 > 9 2 > 10 3 > 18 4 > 19 5 > 45 …

9
查找2D打印对象的容量
在虚构的2D世界中,一组对象的2D打印指令可以用整数列表表示,如下所示: 1 4 2 1 1 2 5 3 4 每个数字代表对象在该特定点的高度。上面的列表在打印时转换为以下对象: # # # # # ### ## #### ######### 然后,我们向其中填充尽可能多的水,结果是: # #~~~~#~# #~~~~### ##~~#### ######### 我们将物体的容量定义为物体完全充满时可以容纳的水的单位。在这种情况下,为11。 严格说来,~当且仅当水单元(#)被同一行中的两个实心块()包围时,它才能在该位置存在。 挑战 以正整数列表作为输入(任何格式),并输出将列表用作指令时打印的对象的容量。 您可以假定列表至少包含一个元素,并且所有元素都在1到255之间。 测试用例 +-----------------+--------+ | Input | Output | +-----------------+--------+ | 1 | 0 | | 1 3 255 1 | …

11
圣诞老人需要送多少只精灵?
圣诞老人需要一些帮助来确定他需要多少精灵来帮助他向每所房子运送礼物。 煤炭比礼物重得多,因此圣诞老人每个屋子里每个顽皮的人都需要三个精灵。只需要两个精灵来帮助圣诞老人携带礼物。 在圣诞老人的地图上,一栋房子用表示*,每栋房子用拆分+。 房子的两边都会有一个数字-左边的数字代表房子里顽皮的人数,右边的数字代表房子里好人的人数。如果一侧没有数字,则将其解释为0。 圣诞老人不会拜访那些不懂圣诞节的人(他们甚至不配煤),因此有时候,房屋的两边可能没有号码。在这种情况下,圣诞老人不需要任何精灵的帮助 例如,圣诞老人的一张地图可能看起来像这样 1*3+2*2+1*+*2 在第一所房子里有1个顽皮的和3个漂亮的,圣诞老人将需要9个精灵。在第二个中,有2个顽皮和2个好人,圣诞老人将需要十个精灵。在第三间屋子里有1个顽皮和0个好人,圣诞老人将需要三个精灵,在最后一个屋子里,有0个顽皮和2个好人,圣诞老人将需要四个精灵。 不过,这是圣诞老人地图之一的过于简化的版本。通常,圣诞老人的地图有多条线,并且呈正方形,以便更好地适合他的列表。法线贴图可能看起来像这样(\n每行的结尾处是a ) 1*2+*+*4+1* 2*4+3*+1*6+* *+*+4*2+1*1 *4+*3+1*+2*3 3*10+2*+*5+* 在此地图中,圣诞老人需要((1 + 0 + 0 + 1 + 2 + 3 + 1 + 0 + 0 + 0 + 4 + 1 + 0 + 0 + 1 + 2 + 3 + 2 …
23 code-golf  string 

11
找出第n个六六元
这次的挑战是找到第n个Fibohexaprime。Fibohexaprime的定义如下: 我们首先观察一个带有斐波那契数的列表: N | Fibonacci number 1 | 1 2 | 1 3 | 2 4 | 3 5 | 5 6 | 8 7 | 13 8 | 21 9 | 34 10 | 55 11 | 89 12 | 144 13 | 233 14 | 377 15 | …

3
编程难题和塔可卡车
Programming Puzzles&Code Golf编程室已开通了炸玉米饼卡车!这个词已经不复存在了,现在来自Stack Exchange网络上的所有用户都在尝试我们美味可口的ASCII 玉米饼。我们需要您的帮助,以确保每个人都及时得到他们的订单。食品卡车内没有太多空间,因此您需要代码尽可能短。 现在进行一些在职培训。 你的工作 编写一个完整的程序,从STDIN读取一个命令,或者编写一个将单个字符串作为输入的函数。玉米饼被打印到STDOUT,按订单生产。 接受订单 客户将通过STDIN或函数参数给您他们的订单。订单将以逗号分隔的所需浇头列表形式出现。浇头的分配顺序决定了它们在炸玉米饼中的出现顺序,首先列出的浇头在底部,最后一个在顶部。这是我们的库存: 豆子 白饭 蔬菜 生菜 鳄梨 酸奶油 莎莎舞 客户可以订购少至1个浇头,但最多订购5个浇头。浇头不必不同。 您可能会假设客户在订购之前熟悉菜单,因此所有订单将仅包含我们库存的食材。也就是说,输入将始终有效。 服务炸玉米饼 客户要求将炸玉米饼打印到STDOUT。它们在食物中带有一些前导或尾随空格是很好的。 市场研究表明,每个人都想将炸玉米饼当作单词吃,而且所有大写字母的单词都更具风味。因此,我们将在所有大写形式中以无空格的形式列出浇头。 为了有艺术感的表达,我们不能只是将玉米饼中的东西放进去并称其为好,我们必须将浇头从左到右轻轻放置,然后根据需要包裹和重复。每个浇头至少要获得2条线。一旦我们检查了样品盘,一切将变得更加清晰。 样品盘 让我们看一些示例订单。 客户下单: Beans,Veggies,Rice,Lettuce,Sour Cream 我们提供: SOUR CREAMS T LETTUC L O ELETTU I R RICERI T T CERICE R I VEGGIE O L SVEGGI T L …

25
莫比乌斯函数
莫比乌斯函数 莫比乌斯函数是重要的数论函数。 您的提交应接受一个正整数,n并返回在处评估的Möbius函数的值n。 定义 莫比乌斯函数μ(n)定义如下: | 1 if n is squarefree and has an even number of distinct prime factors μ(n) = | -1 if n is squarefree and has an odd number of distinct prime factors | 0 otherwise n如果n的质数分解的指数严格都小于2,则称为方自由。(或者:两个分割的幂都不是素数n)。 测试用例 在这里,您可以看到μ的前50个值: 来自维基百科的公共领域图像 默比乌斯函数是OEIS中的序列号A008683。 这些是前77个值: 1, -1, -1, 0, …

25
计算二进制Sierpinski三角序列
Binary Sierpinski Triangle序列是数字序列,其二进制表示形式表示Binary Sierpinski Triangle的行,该序列是通过在无限的零行中以1开头,然后用这些位的xor重复替换每一对位来给出的,就像这样: f(0)= 1 =1 f(1)= 1 1 =3 f(2)= 1 0 1 =5 f(3)= 1 1 1 1 =15 f(4)= 1 0 0 0 1 =17 OEIS上提供了更多数字:https://oeis.org/A001317 输入:您喜欢的任何格式的非负整数n。(必须为所有n个(最多30个)工作。) 输出:序列的第n个项(0索引),为十进制数。 这是代码问题,因此请尝试使用您的语言提供的最短答案(以字节为单位)。没有答案将被接受。存在标准漏洞(例如,不对序列进行硬编码),但您可以使用在发布此挑战后创建/修改的语言。(除非您的解决方案较短,否则请避免以已经使用的语言发布其他解决方案。) 排行榜 这篇文章底部的Stack Snippet会根据答案a)生成目录,a)作为每种语言最短解决方案的列表,b)作为整体排行榜。 为确保您的答案显示出来,请使用以下Markdown模板以标题开头。 ## Language Name, N bytes N您提交的文件大小在哪里。如果您提高了分数,则可以通过打败旧分数来保持标题。例如: ## Ruby, <s>104</s> <s>101</s> 96 bytes …

30
电源插座
这是NCPC 2005的问题。罗伊有一间只有一个电源插座的公寓,但他有一堆配电盘。使用他拥有的配电盘计算他可以拥有的最大插座数量。每个配电盘的插座数作为输入给出。 事实证明,如果条的出口数量分别是 p1,p2,…,pnp1,p2,…,pnp_1, p_2, \dots, p_n then the number of outlets is 1−n+∑ipi1−n+∑ipi1 - n + \sum_i p_i , or 1+p1−1+p2−1+⋯+pn−11+p1−1+p2−1+⋯+pn−11 + p_1-1 + p_2-1 + \dots + p_n-1. The input to the program or function is a non-empty series of positive integers. Examples 2 3 4 > 7 …

30
将数字转换为十六进制
挑战 这是一个简单的例子。 当以10为底的数字作为输入时,编写一个函数或程序,它将以十六进制返回或打印该数字的值。 例子 15 -> F 1000 -> 3E8 256 -> 100 规则 没有内置的十六进制功能 字母可以小写或大写 您只需要担心非负整数,无负数或讨厌的小数 它应该可以处理任意数量的数字,直到语言的默认类型限制。 换行不是必需的 像往常一样,这是代码高尔夫球,因此以字节为单位的最短代码胜出!

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.