Questions tagged «code-golf»

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

5
代词操作
挑战 编写一个函数或程序,该函数或程序使用由一个或多个主观人称代词(用+号分隔)组成的字符串作为参数。输出必须是单个代词,这是下一段中定义的关系的结果。 当然,您可以随时进行编辑,以纠正确实存在的语法错误;) 这是一个代码挑战,因此以最短的代码为准。 关系 这项任务的目标是将我们日常使用的内容翻译成“讲数学”。我们如何看待“你和我”?好吧,“我们”,不是吗?因此,如果输入为You+I输出,则应为string We。具有两个以上的代词,它应类似于: You+He+They->You 该关系定义为此表: I You He We You They I I We We We We We You You You We You You He He We You They We We We We You You You They They “你”的问题 好吧,如您所见,我不是英语母语人士。在我的语言(意大利语)中,您的复数形式(voi,意大利语)和单数形式的您(tu)有所区别。当我想到这个挑战时,我没有用英语思考,因此存在一个问题,即我是使用复数形式还是单数形式,这是无法识别的。幸运的是(或者很明显?),输入/输出在两种形式中都没有改变,因此您可以使用其中一种,并且您将涵盖两种情况! 关于输入 输入将始终为“代词+代词+代词”形式。代词的首字母大写,其余字母小写。加号不会被空格包围,只会被代词包围。空输入是可能的,结果必须是空输出。 奖金 如果该程序可以管理两个新代词:She和It,则可获得15%的小额奖励。很明显,它们与祂相同。请记住,这种关系是自反的,所以她->她和它->它。因此,仅包含她,他或它的任何组合都应输出它们。 例子 You+I …

30
交换,删除和重复
介绍 让我们观察以下字符串: ABCDEFGHIJKLMNOP 如果我们交换字符串的结尾,这些结尾是: ABCDEFGHIJKLMNOP ^^ ^^ 我们得到以下结果: BACDEFGHIJKLMNPO 之后,我们删除字符串的结尾,在这种情况下为B和O。结果是: ACDEFGHIJKLMNP 如果重复此过程,则会得到以下列表: N Result 2 ADEFGHIJKLMP 3 AEFGHIJKLP 4 AFGHIJKP 5 AGHIJP 6 AHIP 7 AP 您可以看到,对于N = 5,结果为AGHIJP。在N = 7时,字符串的长度小于3,因此在这种情况下N> 7被认为是无效的。 任务 给定的字符串小号与至少长度为4和重复数Ñ > 0,输出最终结果。您可以假设N始终有效。 测试用例 Input > Output N = 3, S = ABCDEFGHIJKLMNOP > AEFGHIJKLP N = …
24 code-golf  string 

6
翻转,翻转,刻意
总览 给定纯PPM(P3)格式的图像作为输入,对于图像p中的每个像素,将以下4个像素的红色,绿色和蓝色分别替换为所有4个像素各自通道的下限平均值: p 本身 p垂直翻转图像时位于的位置的像素 p水平翻转图像时位于的位置的像素 p垂直和水平翻转图像时位于的位置的像素 以纯PPM(P3)格式输出结果图像。 为了进一步说明,请考虑将此8x8图像放大到128x128: 我们p是红色像素。为了计算p(和3个蓝色像素)的新值,将和的3个蓝色像素的值一起求p平均值: p1 = (255, 0, 0) p2 = (0, 0, 255) p3 = (0, 0, 255) p4 = (0, 0, 255) p_result = (63, 0, 191) 例子 PPM: 输入, 输出 PPM: 输入, 输出 PPM: 输入, 输出 PPM: 输入, 输出 参考实施 #!/usr/bin/python …

30
缩写
目的 您的目标是制作一个程序,将输入转换为其缩写。您输入的内容保证只有字母和空格。输入将在单词之间恰好有一个空格。您必须输出输入的首字母缩写词。 规则 您的代码不能区分大小写(例如foo和Foo相同) 您的代码必须忽略以下单词,并且不要将它们放在首字母缩写词中: and or by of 您不能假设单词都是小写。 输出必须全部大写,字符之间不能分隔。 尾随换行符可以接受,但不是必需的。 如果您的语言内置了首字母缩写词功能,则您可能无法使用它。 例子 (输入/输出分组) United States of America USA Light Amplification by Stimulation of Emitted Radiation LASER united states of america USA Jordan Of the World JTW 计分 这是一个代码高尔夫球挑战,因此最短的代码获胜。 排行榜 var QUESTION_ID=75448,OVERRIDE_USER=8478;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 getAuthorName(e){return e.owner.display_name}function …
24 code-golf  string 

26
将字节数组拆分为位数组
编写一个函数,当给定缓冲区b(长度为1-104857600字节)和一定数量的位n(1 <= n <= 64)时,会将缓冲区分成若干n位。右填充最后一个数据块,0最高至s n位。 例如 给定缓冲区b = "f0oBaR"或等效的[102,48,111,66,97,82]and n = 5,返回 [12, 24, 24, 6, 30, 16, 19, 1, 10, 8] 这是因为上述缓冲区以二进制表示时看起来像: 01100110 00110000 01101111 01000010 01100001 01010010 当重新分组为5s时,如下所示: 01100 11000 11000 00110 11110 10000 10011 00001 01010 010[00] 将其转换回十进制后将给出答案。 笔记 您可以使用语言中最有意义的任何数据类型来表示缓冲区。在PHP中,您可能会使用一个字符串,在Node中,您可能要使用一个缓冲区 如果使用字符串来表示缓冲区,请假定为char-> int转换为ASCII 如果愿意,可以使用一个整数数组(0-255)进行输入 返回值必须是数组或整数列表 测试用例 > …

1
循环检测-不是那种!
这项挑战的目标是找到一个回路所包围的方向和区域。 输入: 完全由以下字符组成的矩形网格: ^v<> (可选地,您还可以在网格本身之前为网格指定尺寸,以十进制表示,并带有您选择的前缀,后缀和分隔符。) 甲环在网格是一组在上述的字符,使得一个指向下一个的,指向在第一个字符的下一个,最终指回。例如: <>>v> >>v ^^<>v ^ >v >^<<< ^<<< >^<v> 左边的网格是样本输入;正确的网格是隔离的循环。 输入网格将不包含任何循环,也可以包含一个循环。您不必担心网格包含多个循环的任何情况。 输出: 如果网格不包含循环,则输出X。 如果网格包含两个指向彼此的箭头,则输出0。 如果网格包含一个逆时针循环,请计算循环所包围的字符,包括边界。输出该号码。 如果网格包含顺时针循环,请对逆时针循环执行相同的过程,但输出该数字的负数。例如,上述输入网格的输出为-11:10来自循环本身,而1来自循环所包围的字符。 这是代码高尔夫球。最短的代码胜出。 测试用例: <<^ ^>v ^v< 输出X。 <<<< ><<< >>^> 输出0。 <>^^< >>>v> <^^>v <^>>v >^<<< 输出-15。 v<<<< >v>>^ v<^<< >>>>^ 输出20。

8
字母数字螺旋
任务非常简单,当给出输入时,输出以下螺旋之一: Input = 1给出一个螺旋,字母A从左上角开始: A B C D E F T U V W X G S 5 6 7 Y H R 4 9 8 Z I Q 3 2 1 0 J P O N M L K Input = 2给出一个螺旋,字母A从右上角开始: P Q R S T A O …

16
请数我!
您的任务很简单。以任何语言发布一个代码段,如果该代码段重复n次,将以十进制,八进制和十六进制的顺序输出n,并以空格分隔。n是大于零的整数。没有前导零。最短答案胜出 例 如果片段是ABC测试用例 ABC 1 1 1 ABCABC 2 2 2 ABCABCABCABCABCABCABCABCABC 9 11 9 ABCABCABCABCABCABCABCABCABCABCABCABC 12 14 C ABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABC 18 22 12
24 code-golf 

15
随机沃克打印机
绘制一个程序或函数,该程序或函数将向STDOUT n时间(每个步)写入一个字符串,该字符串.在助行器的位置包含一个点。该程序还需要每秒钟写入一行s(或s在每行之后等待几秒钟)。 随机游走是路径的数学形式化,该路径由一系列随机步骤(wiki)组成,因此每个新步骤将是最后一个步骤加上一个新值,因此任何t步骤值都只是所有随机值的总和ir之前加上初始值。 该程序应具有2个输入,并且将在输出上仅使用空格" "和点"."。助行器的起始值20应使输出应为19个空格后的点。 . #19 spaces then a dot 每个新步骤的价值将是步行者的最后价值加上其中一个价值[-2-1,0,1,2](每个价值20%的机会)。在打印新位置后,程序应等待s几秒钟,然后转到下一步。如果踏步使助步器偏离该范围1 to 40,则应忽略该范围,并且助步器位置保持不变。空格数始终是0到39之间的数字。 例 #input Mywalk(s = 0.1, n = 30) #output . . . . . . . . . . . . . . . . . . . . . . . . . . . …
24 code-golf  random 

6
平方的十进制串联
前提 一天晚上,我只是在考虑数字。我发现一些关于数字的独特之处,例如7、10、12、13等。他们是正方形的正方形!意思是,当平方时,由平方本身组成。OEIS称它们为Squares,它们是两个或多个正方形的十进制连接。 这样的数字的示例包括7(49具有2 2和3 2)13(169具有4 2和3 2)和20(400具有2 2和0 2)。其他示例包括37,因为1369是一个术语,可以将其划分为1、36和9。1444(38 2)是一个术语,可以将其划分为1、4、4、4。 .SE,它以我的名字命名! 挑战 设计一个打印TanMath数字的程序。给定数字n(从1开始),打印第n个TanMath数字T(n)。 作为代码示例: >> 1 >> 7 要么 >> 4 >> 13 参考Python实现(感谢@MartinBüttner和@ Sp3000!): from math import sqrt n = input() def r(digits, depth): z = len(digits) if z < 1: return (depth > 1) else: for i in …

12
ASCII字符混杂
编写一个程序,将包含可打印字符(ASCII 20-7E)和n[2,16]中的整数的字符串作为输入,并对字符串进行以下修改。 字符串中的每个字符都将转换为其ASCII码(给出的示例为十六进制,但基数10也可以接受)。 ASCII码将转换为基数n并串联在一起。 新字符串将每隔一个字符分割一次。如果有奇数个字符,则最后一个字符将被完全删除。 打印的ASCII代码(以16为基数)被转换回其字符,而非打印的ASCII代码被删除。 结果字符串被打印出来。 测试用例 输入项 Hello, World! 6 脚步 Hello, World! 48 65 6C 6C 6F 2C 20 57 6F 72 6C 64 21 2002453003003031125222330331030024453 20 02 45 30 03 00 30 31 12 52 22 33 03 31 03 00 24 45 该程序的输出为 E001R"31$E。 这是代码高尔夫球,因此适用标准规则。以字节为单位的最短代码获胜。

6
台球(Levenshtein高尔夫)
您必须使用一种语言来编写可以按任意顺序执行以下九项任务的程序。 将输入的数字从10转换为36。 输入样例: 1000 样本输出:(RS输出必须为大写) 将字符串中的每个字符转换为其基数为10的十进制ASCII码,并打印连接在一起的代码。 输入样例: Scrambled 3GG5 样本输出: 839911497109981081011002051717153 确定输入的数字是否可以被1738整除。 如果是,则返回真实值;如果不是,则返回错误值。 确定字符串中是否包含字母q。 如果是,则返回真实值;否则,返回虚假值。 使用+1的凯撒密码对输入的字母字符串进行编码。 案例必须保留。非字母字符将被直接打印。 输入样例: Good morning, World! 样本输出: Hppe npsojoh, Xpsme! 查找并打印数字的素因子之和。 输入样例: 1320 样本输出: 21 打印PPCG。 打印n可被整除的第一个正整数floor(sqrt(n))。 n 是输入的整数。 更换每隔o并O在输入的字符串ಠ。 输入样例: Onomatopoeia 样本输出: ಠnಠmatಠpಠeia 您会注意到,这个挑战Code Billiards并非如此Code Golf。与台球一样,此挑战的目的是设置您的代码,以便仅对下一个挑战进行一些修改。这就是为什么您的程序不必按顺序解决上述任务的原因。 您的分数确定如下 您的分数1随程序中的每个字节上升。 floor(n^(1.5))如果两个连续的程序的Levenshtein距离为,您的分数就会提高n。例如,如果您的第一个程序是potato,第二个程序是taters,则对于12字节,乐谱上升12,而对于Levenshtein距离为5 ,得分上升11= floor(5^(1.5))。 挑战的目的是在编写完所有九个程序之后使分数尽可能低。适用标准CG规则。 要查看排行榜,请单击“显示代码段”,滚动到底部,然后单击“►运行代码段”。优化程序制作的代码段。 显示代码段 …

11
用自己替换一个字符串!
用自身替换字符串 您的目标是通过将原始字符串中的每个字符替换为之前的字符串来替换字符串,从第一个字符开始并环绕。这里有一些例子来说明我的意思: 第一个例子: Input: program Output: apgopra How: Program -> mrogram (replace p by m in program) -> mpogpam (replace r by p in mrogram) -> mprgpam (replace o by r in mpogpam) -> mpropam (replace g by o in mprgpam) -> mpgopam (replace r by g in mpropam) -> …
24 code-golf  string 

3
星期一迷你高尔夫#5:<s>不要</ s>不要在家尝试
星期一迷你高尔夫:每周一发布(希望!)一系列简短的代码高尔夫问题。 有时人们会厌倦生活规则:“不要这样做”,“你不能那样做”,“我们不会让你那样做”。有时似乎确实有限制!但是,时不时地获得一些乐趣是一件好事,所以让我们编写一些代码来修改这些规则。而在我们讨论的同时,也可能会修改其他负面因素。(当然,这些修改将不会只是暂时的,因此我们也将保留原始措辞。) 挑战 您面临的挑战是编写一个程序或函数,以将HTML &lt;s&gt;删除线置于&lt;/s&gt;限制性词(即n't以not该词结尾或之后的词)周围,并在每一个词之后将其正当数插入所有大写字母中。最后,在空格后,应包括更换的数量。例如: Please don't jump into the pool. 变成 Please &lt;s&gt;don't&lt;/s&gt; DO jump into the pool. 1 对于以n't或结尾not(以及cannot)结尾的单词,正等价词是指上述所有字符not(不包括空格)。这就是我的意思: do not speak 变成 &lt;s&gt;do not&lt;/s&gt; DO speak it doesn't work 变成 it &lt;s&gt;doesn't&lt;/s&gt; DOES work we cannot 变成 we &lt;s&gt;cannot&lt;/s&gt; CAN 但是,也有一些例外。确保正确处理这些内容。 can't -&gt; &lt;s&gt;can't&lt;/s&gt; CAN won't -&gt; …
24 code-golf  string 

20
模仿订购
给定两个数字列表,一个源和一个模式,对源重新排序以匹配模式的相对顺序。重新排序的源中的任何两个条目应与模式在相同位置的条目进行比较。 例如,输入 s = [-5, 9, 4, 13, 11, -6, 0] p = [7, -4, 1, -8, 4, -3, 12] 应该产生结果 [11, -5, 4, -6, 9, 0, 13] 比较第一个和最后一个位置,结果有11&lt;13,7&lt;12在模式中匹配。 输入:两个等长的非空整数列表。每个列表都不会重复。是否首先给出源或模式由您决定。 输出:重新排列源编号以使其与图案编号具有相同相对顺序的列表。 排行榜: 显示代码段 var QUESTION_ID=62587,OVERRIDE_USER=20260;function answersUrl(e){return"https://api.stackexchange.com/2.2/questions/62587/answers?page="+e+"&amp;pagesize=100&amp;order=desc&amp;sort=creation&amp;site=codegolf&amp;filter="+ANSWER_FILTER}function commentUrl(e,s){return"https://api.stackexchange.com/2.2/answers/"+s.join(";")+"/comments?page="+e+"&amp;pagesize=100&amp;order=desc&amp;sort=creation&amp;site=codegolf&amp;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&amp;&amp;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)&amp;&amp;(r="&lt;h1&gt;"+e.body.replace(OVERRIDE_REG,"")+"&lt;/h1&gt;")});var a=r.match(SCORE_REG);a&amp;&amp;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&amp;&amp;(n=r),a=e.size,++r;var t=jQuery("#answer-template").html();t=t.replace("{{PLACE}}",n+".").replace("{{NAME}}",e.user).replace("{{LANGUAGE}}",e.language).replace("{{SIZE}}",e.size).replace("{{LINK}}",e.link),t=jQuery(t),jQuery("#answers").append(t);var …

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.