Questions tagged «code-golf»

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

21
原始号码
指导方针 情境 约翰有一个重要的数字,他不希望其他人看到它。 他决定使用以下步骤对数字进行加密: 他的号码始终是一个不递减的序列(即"1123") 他将每个数字都转换成英语单词。(即"123" -> "ONETWOTHREE") 然后,随机重新排列字母。(即"ONETWOTHREE" -> "ENOWTOHEETR") 约翰觉得这样做很安全。实际上,这样的加密很容易解密:( 任务 给定加密的字符串s,您的任务是解密它并返回原始数字。 规则 这是代码高尔夫,所以最短答案以字节为单位 您可以假设输入字符串始终有效 输入字符串仅包含大写字母 原始编号始终按升序排列 您可以以字符串或整数格式返回数字 字母将仅在一个单词之间而不是在整个字符串之间随机播放。 这些数字只能是1到9(含)之间的数字(ONE至NINE) 可能的未加密字符串 在将字符串从数字转换为字符串之后,下面是这些字符串的列表: 1 -> ONE 2 -> TWO 3 -> THREE 4 -> FOUR 5 -> FIVE 6 -> SIX 7 -> SEVEN 8 -> EIGHT 9 -> …

15
我会给小费吗?
总览 给定一个3行的字符串,请找出结构是落在左侧,平衡还是落在右侧。 输入结构 您可以将结构想象为金属棒,顶部有填充物,所有材料都平衡在垂直棒的顶部。 1 7 4 a =============== | 第一行是项目。每一项的权重均以字符减去32的ascii值进行计算。(不考虑32以下的字符,空格的权重为0)。请记住,物品在杆上的作用力是其重量乘以到枢轴点的距离。 第二行是杆。杆的每个长度自身重1个单位。该行完全等于符号(=)。 第三行是枢轴点。它可以放置在任何地方,并由多个空格和一个竖线(|)字符表示。 例子 输入: ===== | 输出:余额 输入: ===== | 输出:向左倾斜 输入: % ===== | 输出:天平(因为%重量足以抵消杆左侧的重量) 输入: a ======= | 输出:向右倾斜(因为a右侧的距枢轴点更远) 输入: 1 7 4 A =============== | 输出:向左倾斜 输入: 1 7 4 a =============== | 输出:向右倾斜(小写字母很重!) 输入: $ …

21
(A [l(t [e(r)n] e)s] t)一个字符串!
Alternesting,是将一个字符串并嵌套在交替的括号中的行为。这是改变字符串的方式。 对于长度为N的字符串,请使用中心N个字符,并将其括在括号中。因此,如果我们的字符串是Hello world!(12个字符),我们将得到 (Hello world!) 然后,取下其余的中心n-2字符,并用方括号括起来。在这种情况下,中间的10个字符是ello world,因此下一个迭代是: (H[ello world]!) 只要字符串中间剩余两个以上的字符,请重复最后两个步骤,在()和之间进行交替[]。这是最后的步骤: (Hello world!) (H[ello world]!) (H[e(llo worl)d]!) (H[e(l[l(o[ w]o)r]l)d]!) 由于最后一次迭代的中间只剩下两个字符,因此我们停止。我们的最后一个字符串是 (H[e(l[l(o[ w]o)r]l)d]!) 请注意中间的括号中如何有两个字符。当输入为偶数长度时会发生这种情况。如果输入为奇数长度(例如,Hello, world!添加了逗号),则中间将只有一个字符: (H[e(l[l(o[,( )w]o)r]l)d]!) 对于当今的挑战,您必须编写一个程序或函数,该程序或函数将字符串作为输入,并对其进行替换,然后输出新的字符串。您可以按照自己喜欢的任何合理格式进行输入和输出。输入将始终至少为一个字符长,并且仅包含可打印的ASCII。您还可以假定输入将不包含任何括号或方括号。对于传统语言来说,这没什么大不了的,但是对于某些深奥的语言来说,这可能会更容易。 与往常一样,这是一场代码高尔夫竞赛,因此请尝试使用您选择的语言做出尽可能短的答案。玩得开心! 测试IO #Input #Output "Alternesting is fun!" --> (A[l(t[e(r[n(e[s(t[in]g) ]i)s] )f]u)n]!) "PPCG" --> (P[PC]G) "Code-golf" --> (C[o(d[e(-)g]o)l]f) "4 8 15 16 23 42" --> …

30
一堆空白的凝视
问题 在没有输入的情况下,编写输出或返回以下字符串的程序或函数: (<(<>(<>.(<>.<(<>.<>(<>.<>)<>.<>)>.<>).<>)<>)>) 规则 最短的程序获胜。 允许尾随空格。 允许尾随换行符。 允许使用的功能未使用的参数。

30
乌鸦与出租车
想象一下,行驶到一个点躺在一个远离水平英里,乙从当前位置英里远垂直。或者换句话说,从(0, 0)起点到终点(a, b)。您需要旅行多远?这似乎是一个简单的问题,但是答案取决于您问的是谁。如果你是一只乌鸦,你可以前往直线距离,行驶距离仅仅是欧氏距离来(a, b)。这是 sqrt(a^2 + b^2) 但是,如果您只是一个无聊的人,那么您真的不想走那么远,因此您需要乘出租车。大多数出租车都不会直线驶向您的目的地,因为他们通常会试图留在道路上。因此,您最终要行驶的实际距离是垂直距离和水平距离的总和。或公式为: abs(a) + abs(b) 这称为出租车距离。这张图片很好地展示了两者之间的区别: 要前往(6, 6),乌鸦只能在绿线上飞行,所以距离6 * sqrt(2)约为8.49。出租车可以走红色,蓝色或黄色的道路,但全部走12条路。 这引出了我要问的真正问题。如果一只乌鸦和一辆出租车都从起点离开(0, 0),然后行驶到终点(a, b),出租车的路程将持续多长时间?或者,用更多的数学术语来说, 给定二维向量,请确定向量的norm2与向量的norm1之间的差。 您必须编写最短的程序或函数才能回答此问题。您可以选择将“ a”和“ b”作为两个单独的输入,或作为两个项目的元组。您可以采用任何合理的格式进行输入和输出。如果差异是非整数,则必须至少精确到两位小数。 您始终可以假设'a'和'b'将是整数,并且它们都不都是0。(尽管它们中的任何一个都可能为零) 像往常一样,存在标准漏洞,并尝试使程序尽可能短(以字节计)。 我将对所有答案进行投票,该答案将说明代码的工作原理,并演示用于保存字节的任何绝妙技巧。 以下是一些示例,可用于测试您的代码: #input #output 3, 4 2 -3, 4 2 -3, -4 2 6, 6 3.51 42, 0 0 10, 10 5.86 3, 3 1.76 …

30
生成;#代码
相关于:进行;#解释器 在上述链接的挑战中,任务是为深奥的语言创建一个解释器;#。 该;#语言 该语言正好有两个命令:;和#(所有其他字符都会被解释器忽略): ;:增加累加器 #:将累加器乘以127,打印相应的ASCII字符并将累加器重置为0。 挑战 因为我很懒,但是仍然想测试更多的测试用例,所以我需要一个将纯文本转换为;#代码的程序或函数。 输入值 输入是一个字符串,作为参数或通过标准输入。它仅包含可打印的ASCII字符和换行符。 输出量 输出是;#通过返回或打印到stdout 生成的程序。只要程序有效,它就可以包含除#和以外的多余字符,;因为所有其他字符都将被忽略。 例子 Input: Hello, World! Output: ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;#;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;#;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;#;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;#;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;#;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;#;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;#;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;#;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;#;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;#;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;#;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;#;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;# Input: ABC Output: ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;#;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;#;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;# Input: ;# Output: ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;#;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;# 排行榜 显示代码段 var QUESTION_ID=122139,OVERRIDE_USER=73772;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 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 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 o=e.language;/<a/.test(o)&&(o=jQuery(o).text()),s[o]=s[o]||{lang:e.language,user:e.user,size:e.size,link:e.link}});var t=[];for(var o in …

30
起点等于终点吗?
任务 在此挑战中,您的任务是编写一个程序或函数,该程序或函数接受String,并根据输入String的第一个字符和最后一个字符是否相等,输出真值或伪值。 输入值 您可以以任何合理的方式接受输入。但是,不允许输入存在于预定义变量中。允许从文件,控制台,命令行,输入字段等进行读取,或将输入作为函数参数。 输出量 除了将结果分配给变量外,您可以以任何合理的格式输出。return允许写入文件,控制台,命令行,模式框,函数语句等。 附加规则 输入也可以是空String,您应该为其返回falsey值。 单字符输入字符串应得到真实的结果。 您的程序应区分大小写。helloH应该输出一个falsey值。 您只能有一个Truthy值和一个Falsey值。例如,不允许将false一个输入字符串和0另一个输入字符串输出为Falsey值。 不允许出现标准漏洞。 测试用例 Input -> Output "10h01" Truthy "Nothing" Falsey "Acccca" Falsey "wow!" Falsey "wow" Truthy "H" Truthy "" Falsey 这是代码高尔夫球,因此以字节为单位的最短代码胜出!

30
用三三代替二
给定一个正整数n编写一些代码来利用其因式分解和替换所有的因素,它2与3。 例如 12 = 2 * 2 * 3 -> 3 * 3 * 3 = 27 这是代码高尔夫球,因此目标是最小化答案的字节数。 测试用例 1 -> 1 2 -> 3 3 -> 3 4 -> 9 5 -> 5 6 -> 9 7 -> 7 8 -> 27 9 -> 9 10 -> 15 11 …

30
永远载入中……Windows风格
按照以下说明制作Windows样式的加载栏。 (请注意,这与Loading ... Forever不同) 您的输出应以开头[.... ]。 每次滴答,您都应等待100毫秒,然后将每个点向右移动一个字符。如果点在第十个字符上,则将其移至第一个字符。请注意,在再次输出之前,您应该清除屏幕。输出顺序如下: [.... ] [ .... ] [ .... ] [ .... ] [ .... ] [ .... ] [ ....] [. ...] [.. ..] [... .] ..然后它永远循环。 规则 这是代码高尔夫,所以最短答案会胜出,我怀疑我什至会接受一个成功答案 请尽可能提供加载栏的gif文件。

26
奇数偶数,正负数
给定N,输出此无限序列的第N个项: -1 2 -2 1 -3 4 -4 3 -5 6 -6 5 -7 8 -8 7 -9 10 -10 9 -11 12 -12 11 ... etc. 您可以根据需要将N索引为0或1。 例如,如果0索引然后输入0,1,2,3,4应该产生相应的输出-1,2,-2,1,-3。 如果1索引然后输入1,2,3,4,5应该产生相应的输出-1,2,-2,1,-3。 需要明确的是,该序列是通过将两次重复的正整数序列生成的 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 10 …

26
摩托车齿轮检查器!
你们中有些人可能熟悉摩托车的换档方式。但是对于那些不喜欢的人,看起来像这样 6 5 4 3 2 ñ 1个 现在,我想知道在执行几次上,下变速操作后我所处的档位。该程序应从中立开始。 输入样例: V^^ 样本输出: 2 如您所见,我从N降档至1,然后升至2档。 这是代码高尔夫球。以字节为单位的最短答案将获胜。 注意:输入可以是任何2个字符。可以是U和D表示上下,也可以是字符串。您不能超越1挡或6挡。如果您排在第六名并再次升档,它将保持在第六名。祝好运!
36 code-golf 

30
除法和余数
尽管在大多数“标准”语言中可能是微不足道的,但这一挑战是针对那些在本网站上很少见到的深奥,低级和/或难以使用的语言。它应该提供一个有趣的问题来解决,因此这是您尝试阅读的奇怪语言的机会! 任务 取两个自然数a和b作为输入,和其它输出两个数字:整数除法的结果a/b,并且这种除法的余数(a%b)。 这是代码高尔夫:每种语言的最短答案(以字节为单位)获胜! 输入输出 0 <= a<= 255,1 <= b<= 255。您的每个输入(以及输出)也都适合一个字节。 您可以为输入和输出选择任何喜欢的格式,只要可以清楚地区分两个数字即可(例如,没有定界符就不能同时打印两个结果) 例子 a,b->division,remainder 5,7->0,5 5,1->5,0 18,4->4,2 255,25->10,5 注意:禁止同时返回除法结果和余数的内建函数。至少向我们展示您的语言如何将两个函数应用于相同的参数。 注意2:与往常一样,非常欢迎您对代码的工作方式进行解释,即使您认为它易于阅读,其他人也可能不这么认为! 排行榜 这是一个堆栈片段,用于按语言生成获奖者概览。 为确保您的答案显示出来,请使用以下Markdown模板以标题开头。 # Language Name, N bytes N您提交的文件大小在哪里。如果您提高了分数,则可以通过打败旧分数来保持标题。例如: # Ruby, <s>104</s> <s>101</s> 96 bytes 如果要在标头中包含多个数字(例如,因为您的分数是两个文件的总和,或者您想单独列出解释器标志罚分),请确保实际分数是标头中的最后一个数字: # Perl, 43 + 2 (-p flag) = 45 bytes 您还可以将语言名称设置为链接,然后该链接将显示在页首横幅代码段中: # [><>](http://esolangs.org/wiki/Fish), …

18
自动进行一年级的计数练习
CodeGolf挑战 PWSSHHHH!您在3000年的一个低温实验室中醒来。在押送至任务分配办公室以接收您的职业筹码(大概是送货员的职业筹码)后,探针会检测到您来自2000年。刻板印象,与当今的现代人相比,你被认为是愚蠢的,被迫重读小学。 您进入一年级教室,老师正在做作业。她会说或写一个不超过50的数字。如果她在黑板上写下该数字(例如:25),那么您必须说不超过该数字的数字“ 1、2、3,...,25 ”。如果她大声说出数字(例如:“六个”),则必须在平板电脑上将数字写成最大为“ 1、2、3、4、5、6” 这变得非常乏味,您决定使用仍在运行的21世纪原始编程知识来自动化该过程。 目的: 您的程序应该接受输入。该输入将是十进制数字(1 thru 50)或写出数字(one thru fifty)。 •如果输入为十进制数字,则您的输出应使用写出样式从一到该数字进行计数。(例如32个) •如果输入是写出的数字,则您的输出应使用小数形式从1计数到该数字。(例如32) 规则: 输入和输出可以在您选择的任何情况下使用(因此,如果需要,您可以制作一个仅接受大写字母的程序)。 输入的十进制数字不必是数字类型(例如int),它们可以是包含数字的输入字符串(25对“ 25”)。两种都很好,您可以选择要让程序接受的一种。(您的程序无需同时接受两者) 书面样式不需要复合词之间的连字符,但是如果需要,可以。 输出值必须以某种形式分隔,任何分隔符都可以 1,2,3 1 2 3 etc 您不能添加额外的库,例如num2words(python)等(但是系统库也可以) 即使背景故事说您来自2000年,您也可以使用在该日期之后创建的语言(lol) 这是代码高尔夫球,因此字节数最短的程序将获胜!

21
跨越袋鼠
背景故事 免责声明:可能包含有关袋鼠的虚假信息。 袋鼠穿越了几个发展阶段。随着年龄的增长和力量的增强,他们可以跳得更高和更长,并且在饥饿之前可以跳更多次。 在第1阶段,袋鼠很小,根本无法跳跃。尽管如此,还是不​​断需要营养。我们可以这样表示第1阶段袋鼠的活动模式。 o 在第2阶段,袋鼠可以跳一点,但饿之前不能超过2跳。我们可以代表一个阶段2这样袋鼠的活动模式。 o o o o o 在第2阶段之后,袋鼠会迅速改善。在随后的每个阶段中,袋鼠都可以跳得更高一点(在图形表示中为1个单位),并且是原来的两倍。例如,第3阶段袋鼠的活动模式如下所示。 o o o o o o o o o o o o o o o o o 对于阶段n,活动模式由高度为n的2 n-1个 V形跳跃组成。 例如,对于阶段4,有8个高度4的跳跃。 o o o o o o o o o o o o o o o o o …

30
按任意键继续
你的任务是创建一个程序,将显示下面的文本,等待用户按一个键(它是好的忽略像钥匙ctrl,alt,caps lock等,只要键,如letters,numbers,symbols,并enter没有忽略),然后终止程序: Press any key to continue... 尾随换行符是允许的。按下键后,程序必须立即退出。另外,该程序必须是可移植的(即,没有特定于操作系统的头文件或模块,不能在IDE外部运行,等等)。 提示必须与上面显示的完全一样,除非不能避免在结尾的换行符。 这是代码高尔夫球,因此最短的答案以字节为单位。这也是我的第一个代码高尔夫球问题,因此,如果我不了解PPCG规则,我深表歉意。
36 code-golf 

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.