Questions tagged «code-golf»

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

30
产生不确定性输出的最短代码
您需要产生不确定的输出。 在这种情况下,这将被定义为表示输出将不会总是相同的结果。 规则: 始终具有相同种子的伪随机数生成器不计算在内。 您可以依靠程序在每次执行的不同(未知)时间运行。 您的代码的进程ID(如果解释器未固定)可以认为是不确定的。 您可能依赖于基于网络的随机性。 您的代码可能不接受非空输入。相关meta post。 不需要暂停程序,但是必须显示输出。 排行榜 显示代码段 function answersUrl(a){return"https://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"https://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=101638,ANSWER_FILTER="!t)IWYnsLAZle2tQ3KqrVveCRJfxcRLe",COMMENT_FILTER="!)Q2B_A2kjfAiU78X(md6BoYk",OVERRIDE_USER=34718,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; body{text-align:left!important}#answer-list,#language-list{padding:10px;width:400px;float:left}table thead{font-weight:800}table td{padding:5px} <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script><link rel="stylesheet" type="text/css" href="//cdn.sstatic.net/codegolf/all.css?v=83c949450c8b"><div id="language-list"> <h2>Shortest Solution by …
83 code-golf  random 

30
打印一个10 x 10的星号网格
背景 这是一个标准的教科书示例,用于演示循环。 这是大约10年前我开始学习编程时所学的第一批程序之一。 任务 您将打印此确切文本: ********** ********** ********** ********** ********** ********** ********** ********** ********** ********** 眼镜 您可能会有多余的尾随换行符。 每行末尾可能会有多余的尾随空格(U + 0020),包括多余的尾随换行符。 计分 这是代码高尔夫球。以字节为单位的最短答案将获胜。 排行榜 这是一个堆栈片段,用于按语言生成常规排行榜和获胜者概述。 显示代码段 /* Configuration */ var QUESTION_ID = 88653; // Obtain this from the url // It will be like https://XYZ.stackexchange.com/questions/QUESTION_ID/... on any question page var ANSWER_FILTER …

6
3D ASCII块构建
挑战 编写一个程序,该程序采用11x11整数数组,并构建3D ASCII块构建,其中数组中的每个值表示在与数组位置匹配的坐标处的一列块的高度。负高度是“浮动”列-仅顶部块可见。 例 __________________ ___ /\__\__\__\__\__\__\ 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /\__\ /\/\__\__\__\__\__\__\ 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /\/__/ /\/\/__/__/__/__/__/__/ 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /\/\__\ /\/\/\__\ /\/\/__/ 1, 0, 0, …

30
我的狗真正听到了什么
我的狗叫雷克斯。每当我责骂他时,他似乎都不会留下深刻的印象,而我唯一看到他的反应就是我念出他的名字时。如果我说 Rex, I told you not to do this! You're making me angry Rex! 他所听到的是 Rex, * **** *** *** ** ** ****! ***'** ****** ** ***** Rex! 挑战:给定一个输入字符串,您的程序必须输出相同的字符串,该字符串中所有字母字符都变为星号,但单词外观上的字符Rex(必须保持原状)除外。非字母字符也保持不变。 详细信息:挑战不区分大小写,因此也rex必须保持不变。该单词Rex可以是另一个单词的一部分,因此例如anorexic必须呈现为***rex**。 更新:由于此挑战的初始文本并未阐明应如何处理下划线或数字或重音符号,因此我对这些字符没有特殊要求。因此,只要正确处理a-zA-Z中的字符(以及示例中提到的字符),解决方案就有效,!".。 测试用例 : 输入: Rex lives in Rexland. 输出: Rex ***** ** Rex****. 输入: To call Rex, just say "Rex". …

28
您连续八天!
语言学习应用程序Duolingo有很多功能要做,但是有一个主要问题使我发疯。它告诉我我已经连续几天使用该应用程序,并显示一条消息,例如“ 您正在连续7天出现连败!”。撇开连字符和是否应拼写数字,这对大多数数字都适用,但是当您说自己连续8天出现错误时,这无疑是错误的!我没有用它来学习英语,但这对于语言应用程序来说仍然是不幸的行为。 您将通过编写一个完整的程序或函数来帮助Duolingo团队,该程序或函数可以确定给定数字前应带有a还是a。一个数字前面有一个,如果它的英语口语发音与开始辅音或半元音的声音,并且在前面的,如果它的发音以元音开头。因此,唯一以a开头的数字是那些以八,十一,十八或八十开头的发音。 大概Duolingo开发团队留了这个bug的原因是因为他们用光了空间,无法在应用程序中使用更多的源代码,因此您需要使此代码尽可能短,以希望他们可以将其压缩。 您的代码必须采用0到2,147,483,647之间的整数,并输出a或an。尾随换行符是可选的。出于此挑战的目的,1863年被理解为1836.3,而不是163。 测试用例: 0 → a 8 → an 11 → an 18 → an 84 → an 110 → a 843 → an 1111 → a 1863 → a 8192 → an 11000 → an 18000 → an 110000 → a 180000 → a 1141592 → …
82 code-golf  number 

25
烤一片Pi
编写一个程序或函数来打印或输出此准确的文本(由142个字符组成): ()()()()()() |\3.1415926| |:\53589793| \::\2384626| \::\433832| \::\79502| \::\8841| \::\971| \::\69| \::\3| \__\| 您的程序必须不接受任何输入(除非使用不可能的语言,例如sed),并产生以上文本(并且仅上面的文本)作为输出。尾随换行符是可以接受的。 这是代码高尔夫球,因此最短的答案(以字节为单位)获胜。

11
正则表达式,纸张,剪刀,蜥蜴,Spock
热身:正则表达式,纸张,剪刀 这是我最初想要发布的挑战,然后才意识到存在一些非常简短的解决方案。尽管如此,思考以下实际挑战仍可能是一个有趣的问题。 编写三个正则表达式R,P和S,使它们以循环的Rock,Paper和Scissors方式彼此匹配。特别地,[R匹配小号,小号匹配P和P相匹配- [R ,但ř 不匹配P,小号 不匹配- [R和P不匹配小号。这是一个方便的桌子: Regex Matches Doesn't match R S P P R S S P R R,P和S对任何其他输入(包括它们自己)执行的操作无关紧要。 在这里,match只是意味着输入的某些(可能为空)子字符串已匹配。匹配不需要覆盖整个输入。 挑战:正则表达式,纸张,剪刀,蜥蜴,Spock 对于这个挑战,您将基于RPS变体Rock,Paper,剪刀,蜥蜴,Spock(由The Big Bang Theory推广)解决上述问题的更严格的版本。在RPSLV中,有五个不同的符号,它们在两个周期内相互跳动: 岩石→剪刀→蜥蜴→纸→麻雀→岩石 岩石→蜥蜴→麻雀→剪刀→纸→岩石 您应该编写五个正则表达式R,P,S,L和V,当它们彼此作为输入时,它们模仿该结构。这是对应的表: Regex Matches Doesn't match R L, S V, P L V, P S, R V S, R P, L …

30
<所有语言>打高尔夫球的技巧
这篇文章的目的是收集所有可以轻松应用的高尔夫球技巧,&lt;all languages&gt;而不是特定的技巧。 仅发布其逻辑可应用于大多数语言的答案 请给每个答案一个提示
81 code-golf  tips 

30
打印Tabula Recta!
打印Tabula Recta! Tabula Recta(有时称为“ Vigenere表”)是由Johannes Trithemius创建的,并已用于多种密码中,包括Bellaso Vigenere密码和Trithemius密码的所有变体。看起来像这样: ABCDEFGHIJKLMNOPQRSTUVWXYZ BCDEFGHIJKLMNOPQRSTUVWXYZA CDEFGHIJKLMNOPQRSTUVWXYZAB DEFGHIJKLMNOPQRSTUVWXYZABC EFGHIJKLMNOPQRSTUVWXYZABCD FGHIJKLMNOPQRSTUVWXYZABCDE GHIJKLMNOPQRSTUVWXYZABCDEF HIJKLMNOPQRSTUVWXYZABCDEFG IJKLMNOPQRSTUVWXYZABCDEFGH JKLMNOPQRSTUVWXYZABCDEFGHI KLMNOPQRSTUVWXYZABCDEFGHIJ LMNOPQRSTUVWXYZABCDEFGHIJK MNOPQRSTUVWXYZABCDEFGHIJKL NOPQRSTUVWXYZABCDEFGHIJKLM OPQRSTUVWXYZABCDEFGHIJKLMN PQRSTUVWXYZABCDEFGHIJKLMNO QRSTUVWXYZABCDEFGHIJKLMNOP RSTUVWXYZABCDEFGHIJKLMNOPQ STUVWXYZABCDEFGHIJKLMNOPQR TUVWXYZABCDEFGHIJKLMNOPQRS UVWXYZABCDEFGHIJKLMNOPQRST VWXYZABCDEFGHIJKLMNOPQRSTU WXYZABCDEFGHIJKLMNOPQRSTUV XYZABCDEFGHIJKLMNOPQRSTUVW YZABCDEFGHIJKLMNOPQRSTUVWX ZABCDEFGHIJKLMNOPQRSTUVWXY 我经常需要它,但是在Internet上任何地方都找不到它可以复制和粘贴。因为方桌是那么的漫长,并采取该死的年龄打字,你的代码必须尽可能短。 规则/要求 每个提交应该是完整的程序或功能。如果它是一个函数,则只需将函数调用添加到程序底部即可使其可运行。其他任何内容(例如C中的标头)都必须包括在内。 如果可能,请提供指向可以测试您的程序的站点的链接。 您的程序不得向写入任何内容STDERR。 禁止使用标准漏洞。 您的程序在任何情况下都可以输出,但是必须将其打印出来(而不是数组或类似的东西)。 计分 程序根据字节评分,默认情况下为UTF-8或您选择的其他字符集。 最终,字节数最少的答案将获胜。 意见书 为确保您的答案显示出来,请使用以下Markdown模板以标题开头。 # Language Name, N bytes …

30
2048类数组移位
假设我们要像2048游戏中那样移动数组:如果数组中有两个相等的连续元素,请将它们合并为value元素的两倍。Shift必须返回一个新的数组,其中每对连续的相等元素都用它们的和替换,并且对不应该相交。移位仅执行一次,因此我们不需要再次合并结果值。请注意,如果我们有连续3个相等的元素,我们总结最右边的人,因此,例如,[2, 2, 2]应该成为[2, 4]不[4, 2]。 任务是编写最短函数,该函数接受一个数组并返回移位的数组。 您可以假设所有整数都将严格为正。 例子: [] -&gt; [] [2, 2, 4, 4] -&gt; [4, 8] [2, 2, 2, 4, 4, 8] -&gt; [2, 4, 8, 8] [2, 2, 2, 2] -&gt; [4, 4] [4, 4, 2, 8, 8, 2] -&gt; [8, 2, 16, 2] [1024, 1024, 512, …

16
击败SVGCaptcha
我遇到了SVGCaptcha,立即意识到这是一个坏主意。 我希望您通过从代码产生的SVG图像中提取验证代码来说明这是多么糟糕的主意。 示例图像如下所示: 这是示例图像的来源: &lt;?xml version="1.0" encoding="utf-8"?&gt;&lt;!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd"&gt; &lt;svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" width="200" height="40" &gt; &lt;rect x="0" y="0" width="200" height="40" style="stroke: none; fill: none;" &gt; &lt;/rect&gt; &lt;text style="fill: #4d9363;" x="5" y="34" font-size="20" transform="translate(5, 34) rotate(-17) translate(-5, -34)"&gt;8&lt;/text&gt; &lt;text style="fill: #be8b33;" x="125" y="29" font-size="21" transform="translate(125, 29) …

25
打印“你好,世界!”
对真的。 用硬件打印机🖨 打印它以创建纸质副本。 将必要的命令/数据发送到打印机,以便在纸上打印以下文本: 你好,世界! 您可以使用任何可用的本地或网络连接的打印机。 如果您的打印机允许,则应在白纸上用黑色墨水使用8pt或更大的文本。 文本应显示在自己的行上。可以根据需要将其定位在左侧或右侧。 提交的数字照片/视频/ GIF证据会有所帮助。 如果您的硬件不能做纸,但可以进行其他奇特的硬拷贝生产,例如3D打印,CNC加工或原子级打印,那么我很乐意接受这样有趣的意见。 为了明确起见,该问题询问“将必要的命令/数据发送到打印机”。这意味着不需要进一步的用户输入。打开打印对话框是不够的。截至2016年12月31日太平洋标准时间上午10:48,执行此操作的现有答案将为您的父级(但我自己不支持)。

30
最短代码按位反转二进制字符串
我认为这里没有足够的简单问题供初学者尝试! 挑战:给定随机输入字符串1和0,例如: 10101110101010010100010001010110101001010 编写输出最短代码的最短代码,如下所示: 01010001010101101011101110101001010110101
79 code-golf  string 

30
伸缩括号
考虑正确平衡的括号的非空字符串: (()(()())()((())))(()) 我们可以想象每对括号代表一个折叠的伸缩式结构中的圆环。因此,让我们扩展望远镜: ( )( ) ()( )()( ) () ()() ( ) () 另一种看待它的方法是将深度为n的括号移到第n行,同时保持其水平位置。 您的任务是采用这样的平衡括号字符串,并生成扩展版本。 您可以编写程序或函数,通过STDIN(或最接近的等效项),命令行参数或函数参数获取输入,并通过STDOUT(或最接近的等效项),返回值或函数(out)参数生成输出。 您可以假定输入字符串有效,即仅包含正确平衡的括号。 您可以在每行上打印尾随空格,但不要在多余的空格前打印多余的空格。总的来说,这些行的长度不能超过输入字符串长度的两倍。您可以选择打印单个尾随换行符。 例子 除了上面的示例,这里还有更多的测试用例(输入和输出用空行分隔)。 () () (((()))) ( ) ( ) ( ) () ()(())((()))(())() ()( )( )( )() () ( ) () () ((()())()(()(())())) ( ) ( )()( ) ()() ()( )() …

30
尽可能少的字节泄漏内存
您的任务是编写代码,该代码将在尽可能少的字节中泄漏至少一个字节的内存。内存必须泄漏,而不仅仅是分配。 内存泄漏是程序分配的内存,但是在可以正确地重新分配内存之前,它无法访问。对于大多数高级语言,此内存必须在堆上分配。 以下程序是C ++中的一个示例: int main(){new int;} 这使new int堆上没有指针。由于我们无法访问该内存,因此该内存立即被泄漏。 以下是Valgrind的泄漏摘要: LEAK SUMMARY: definitely lost: 4 bytes in 1 blocks indirectly lost: 0 bytes in 0 blocks possibly lost: 0 bytes in 0 blocks still reachable: 0 bytes in 0 blocks suppressed: 0 bytes in 0 blocks 如果可以的话,许多语言都具有内存调试器(例如Valgrind),您应该包括此类调试器的输出以确认内存泄漏。 目标是最大程度地减少源中的字节数。
79 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.