Questions tagged «code-golf»

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

29
计算平方和平方根!
您必须制作一个能用一种语言输出输入的平方并用另一种语言输出输入的平方根的多色图。以字节为单位的最短答案为胜! 您必须具有至少3个小数位的精度,并且输入将始终为正浮点数。

15
此井字棋牌有效吗?
挑战 给定任何格式的井字游戏板,请确定其是否有效。如果棋盘可以是井字游戏的结果,那么它是有效的。例如,此板有效:XOX 氧代 XOX相反,此板无效: XXX XXO OOO 输入项 完整的(9/9)井字游戏板(结果,而不是游戏)。 规则 输入格式必须能够描述所有512种可能的输入板。如果不清楚/不清楚,则必须指定它以及创建说明。但是,您必须单独声明木板的标记。 必须有两个可能的输出,一个用于有效性,一个用于无效。 您可以假定板上没有空点。 测试用例 有效: XOX 氧代 XOX XOX XOX 氧代 XOO OX OXX 氧代 XOX 氧代 无效: XXX XXX XXX OOO OOO OOO XXX OOO XXX OOO OX XXX XXO 氧代 OX 一点帮助? 仅在以下两个条件成立的情况下,董事会才被认为是有效的(对此挑战): 有5 X和4 O,或4 X和5O。例如, XXX …

30
去palindromize此字符串!
给定根据此挑战生成的回文,请对其进行去盲化。 测试用例 abcdedcba -> abcde johncenanecnhoj -> johncena ppapapp -> ppap codegolflogedoc -> codegolf 因为这是关于去palindromating的,所以您的代码不能是回文。 请记住,这是code-golf,所以字节最少的代码将获胜。

8
确定硬币系统是否规范
该出纳的算法是在最小的硬币数量是工作得很好大多数货币体系进行改变的算法。但是,像大多数贪婪算法一样,它并非没有缺陷。如果建立的货币系统恰好正确(或错误),那么某些值会使收银员算法无法找到最佳找零。 请看以下示例: 我们有4¢,3¢和1¢硬币。我们想赚6美分。 出纳员算法将首先选择尽可能多的最大硬币(开始时为4美分),然后减去并重复。这将产生1个4¢硬币和2个1¢硬币,总共3个硬币。 不幸的是,对于该算法,有一种方法只能用两个硬币(两个3¢硬币)赚取6¢。 对于所有整数值,找零系统将被认为是标准的,而Cashier算法将找到最佳硬币数量。 任务 您的任务是将系统当作代表硬币值的整数的无序容器或已排序的有序容器,如果系统输入为标准值且为假,则输出真实值。 您的程序应适用于可以创造任何价值的所有系统。(即所有系统都将有1美分的硬币) 这是代码高尔夫最少字节获胜的代码。 测试用例 此列表绝不是详尽无遗的,您的程序应适用于所有有效输入 1, 3, 4 -> 0 1, 5, 10, 25 -> 1 1, 6, 10, 25 -> 0 1, 2, 3 -> 1 1, 8, 17, 30 -> 0 1, 3, 8, 12 -> 0 1, 2, 8, 13 …

30
打印所有整数
编写一个程序或函数,一旦给定了无限的时间和内存,该程序或函数将精确地打印所有整数。 可能的输出可能是: 0, 1, -1, 2, -2, 3, -3, 4, -4, … 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, -1, -2, -3, -4, -5, -6, -7, -8, -9, 10, 11, … 这不是有效的输出,因为它永远不会枚举负数: 0、1、2、3、4、5、6、7、8、9、10、11… 输出必须为十进制,除非您的语言不支持十进制整数(在这种情况下,请使用您语言使用的整数的自然表示形式)。 您的程序必须处理语言中标准整数类型最大的数字。 每个整数必须使用任何不是数字也不是语言负号的分隔符(空格,逗号,换行符等)与下一个分隔。 分隔符在任何时候都不得更改。 分隔符可以由多个字符组成,只要它们都不是数字也不是负号(例如, ,与一样有效,)。 最终必须在有限的时间后打印所有受支持的整数。 计分 这是代码高尔夫球,因此最短答案以字节为单位 排行榜 显示代码段 var QUESTION_ID=93441,OVERRIDE_USER=41723;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 …

17
边缘骑士是冷酷的
介绍 阿伦·尼姆佐维奇(Aron Nimzowitsch)是一位领先的国际象棋大师和一位有影响力的国际象棋作家。 在他的书“我的系统”中,第一章讨论了中心的重要性以及为什么要主导中心。原因很简单,当您位于中心位置时,您的棋子有更多可能的直接下一步动作,这又使玩家拥有更大的力量。 当查看骑士的不同位置及其在空板上的潜在下一步动作(以粉红色显示)时,这一点非常清楚: 目的 根据骑士的位置,评估骑士在空板上可能进行的直接下一步行动的次数。 输入规格 骑士的位置。 首先是x(列),然后是y(行)。0 0是左下角。 为简单起见,我将棋盘的标签更改为仅数字。对于我们的示例和测试案例,我们使用基于0的索引,但是您可以自由使用基于1的索引。 您可以使用任何类型的可能的输入格式,数组,函数参数等。 输出规格 空板上一个骑士的潜在直接下一步移动次数。 测试用例 3 4 => 8 4 6 => 6 7 7 => 2 1 0 => 3 测试用例采用基于0的索引。完整的值网格为: 2 3 4 4 4 4 3 2 3 4 6 6 6 6 4 3 4 …
48 code-golf  math  chess 

30
字母三角形
您将打印此确切文本: A ABA ABCBA ABCDCBA ABCDEDCBA ABCDEFEDCBA ABCDEFGFEDCBA ABCDEFGHGFEDCBA ABCDEFGHIHGFEDCBA ABCDEFGHIJIHGFEDCBA ABCDEFGHIJKJIHGFEDCBA ABCDEFGHIJKLKJIHGFEDCBA ABCDEFGHIJKLMLKJIHGFEDCBA ABCDEFGHIJKLMNMLKJIHGFEDCBA ABCDEFGHIJKLMNONMLKJIHGFEDCBA ABCDEFGHIJKLMNOPONMLKJIHGFEDCBA ABCDEFGHIJKLMNOPQPONMLKJIHGFEDCBA ABCDEFGHIJKLMNOPQRQPONMLKJIHGFEDCBA ABCDEFGHIJKLMNOPQRSRQPONMLKJIHGFEDCBA ABCDEFGHIJKLMNOPQRSTSRQPONMLKJIHGFEDCBA ABCDEFGHIJKLMNOPQRSTUTSRQPONMLKJIHGFEDCBA ABCDEFGHIJKLMNOPQRSTUVUTSRQPONMLKJIHGFEDCBA ABCDEFGHIJKLMNOPQRSTUVWVUTSRQPONMLKJIHGFEDCBA ABCDEFGHIJKLMNOPQRSTUVWXWVUTSRQPONMLKJIHGFEDCBA ABCDEFGHIJKLMNOPQRSTUVWXYXWVUTSRQPONMLKJIHGFEDCBA ABCDEFGHIJKLMNOPQRSTUVWXYZYXWVUTSRQPONMLKJIHGFEDCBA ABCDEFGHIJKLMNOPQRSTUVWXYXWVUTSRQPONMLKJIHGFEDCBA ABCDEFGHIJKLMNOPQRSTUVWXWVUTSRQPONMLKJIHGFEDCBA ABCDEFGHIJKLMNOPQRSTUVWVUTSRQPONMLKJIHGFEDCBA ABCDEFGHIJKLMNOPQRSTUVUTSRQPONMLKJIHGFEDCBA ABCDEFGHIJKLMNOPQRSTUTSRQPONMLKJIHGFEDCBA ABCDEFGHIJKLMNOPQRSTSRQPONMLKJIHGFEDCBA ABCDEFGHIJKLMNOPQRSRQPONMLKJIHGFEDCBA ABCDEFGHIJKLMNOPQRQPONMLKJIHGFEDCBA ABCDEFGHIJKLMNOPQPONMLKJIHGFEDCBA ABCDEFGHIJKLMNOPONMLKJIHGFEDCBA ABCDEFGHIJKLMNONMLKJIHGFEDCBA ABCDEFGHIJKLMNMLKJIHGFEDCBA ABCDEFGHIJKLMLKJIHGFEDCBA ABCDEFGHIJKLKJIHGFEDCBA ABCDEFGHIJKJIHGFEDCBA ABCDEFGHIJIHGFEDCBA ABCDEFGHIHGFEDCBA ABCDEFGHGFEDCBA ABCDEFGFEDCBA ABCDEFEDCBA ABCDEDCBA ABCDCBA ABCBA …

10
星期一迷你高尔夫#6:Meeesesessss upp teeexexextext
星期一迷你高尔夫:每周一发布(希望!)一系列简短的代码高尔夫挑战赛。 真实故事1:前几天,当我有想法去访问我通常在PC上用于测试JavaScript 的页面时,我正在平板电脑上玩耍。页面加载后,我输入了以下简单程序: alert("Hello!") 然后,我继续按Execute按钮,当它告诉我输入的代码无效时,我感到很惊讶。我再次查看了文本框,并看到了以下内容: alllelelerlerlertlert("Heeelelellellelloello!") 哇??? 那不是我输入的!那这里怎么了 为了弄清楚,我输入了两个简单的行: abcdefg 0123456 结果是: abbbcbcbcdbcdbcdebcdebcdefbcdefbcdefgbcdefg 0112123123412345123456 到目前为止,我仍然不知道字母发生了什么,但是数字似乎更简单,所以我仔细看了一下。事实证明,该网页只是输入第一个字符,然后在每次按下新的字符时重复字符串中的所有其余字符: 0112123123412345123456 0 1 12 123 1234 12345 123456 但是字母部分呢?经过一分钟的思考,我意识到它是相同的,但是没有重复每个小节一次,而是重复了两次: abbbcbcbcdbcdbcdebcdebcdefbcdefbcdefgbcdefg a bb bcbc bcdbcd bcdebcde bcdefbcdef bcdefgbcdefg 两种作品的结合以及这些技术的结合: abc123z abbbcbcbc1bc12bc123bc123zbc123z a bb bcbc bc1 bc12 bc123 bc123zbc123z 无论是什么故障引起的,这似乎都在标点和空格处重置,因此abc def变为abbbcbc deeefef。 在这一点上,我全神贯注于将其弄清楚并将其变成一个有趣的挑战,以至于我忘记了为什么我一直在那儿。(不过,我确实弄清楚了如何正常键入:在每个字符后按空格键。这很繁琐,但是您必须执行操作。) 挑战 挑战的目标是编写一个程序或函数,该程序或函数接受要处理的文本,进行上面列出的更改,然后输出/返回结果。 细节 输入将仅包含可打印的ASCII,并且没有制表符或换行符。 …
48 code-golf  string 

30
交换字母
在此挑战中,您将“反转”字母或a-z与交换z-a。这通常称为Atbash密码。 因为此转换使输出看起来像某种外语,所以您的代码将需要尽可能短。 例子 abcdefghijklmnopqrstuvwxyz zyxwvutsrqponmlkjihgfedcba Programming Puzzles & Code Golf Kiltiznnrmt Kfaaovh & Xlwv Tlou Hello, World! Svool, Dliow! 规格 输入可能包含多行,并且只能是ASCII码 没有 额外的空格应该被添加到输出 案件必须保留 排行榜 显示代码段 var QUESTION_ID=68504,OVERRIDE_USER=40695;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 s)s.hasOwnProperty(o)&&t.push(s[o]);t.sort(function(e,s){return e.lang>s.lang?1:e.lang<s.lang?-1:0});for(var c=0;c<t.length;++c){var …
48 code-golf  string 

30
打印乐高积木
这一挑战是一种简单的科学技术挑战。给定两个输入来描述乐高积木的高度和宽度,您已经打印了它的ASCII美术表示形式。 这是乐高积木的外观: (4, 2) ___________ | o o o o | | o o o o | ----------- (8, 2) ___________________ | o o o o o o o o | | o o o o o o o o | ------------------- (4, 4) ___________ | o o o o …

6
对字符串加香
霍多尔(Hodor)在《权力的游戏》(Game of Thrones)节目中是个头脑笨拙但讨人喜欢的角色(当然,他也在书中)。他曾经说过的唯一一句话是“霍多尔”。 令人惊讶的是,尽管词汇量不多,但霍多尔总是用完整的句子说出正确的大写和标点符号,并且实际上传达了含义。 Hodor能够表达所有128个ASCII字符,尽管他要用一个完整的句子说每个字符。每个字符都有一个准确的句子表示形式。通过将字符串中的所有字符翻译成它们的Hodor句子等效项,然后将所有句子连接起来,对ASCII字符串进行Hodorized。由于所有字符都映射为准确的句子,因此所有ASCII字符串都具有单个唯一的Hodorized表示形式。 加香字符 霍多尔通过对代表字符的句子使用4种不同的标点符号,将他的128个可表达字符分为4组,每组32个。 句子以...结尾 .如果ASCII字符代码mod 4为0。 .[newline][newline] (对于新段落),如果代码mod 4为1。 ? 如果代码mod 4为2。 ! 如果代码mod 4为3。 例如,的ASCII字符代码为b98,而98的mod 4为2,因此Hodor的句子b肯定以结尾?。 该句子的内容是仅包含单词“ hodor”的32个不同的字符串之一。特定标点类型的32个字符中的每个字符都映射到不同的句子内容字符串。因此,使用32个句子内容字符串和4种标点符号类型,所有128个ASCII字符都可以表示为不同的Hodor句子。 要确定具有ASCII码C的字符的句子内容,请计算(floor(C / 4) + 16) mod 32;该列表中该行上冒号之后的所有内容均为句子内容: 0:Hodor 1:HODOR 2:Hodor hodor 3:Hodor, hodor 4:Hodor hodor hodor 5:Hodor, hodor hodor 6:Hodor hodor hodor hodor 7:Hodor hodor, hodor hodor …
48 code-golf  string 

7
避江
背景 在排版中,河流是一块文本中的视觉间隙,这是由于空间的同时对齐而发生的。这些特别令人讨厌,因为您的大脑似乎在周围视力中更容易拾取它们,从而不断分散您的视线。 例如,以下面的文本块为例,这些行的折断使得行宽不超过82个字符: Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eismod tempor incididunt ut labore et dolore maga aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum …

14
太快,太傅立叶:FFT代码高尔夫
以尽可能少的字符实现快速傅立叶变换。 规则: 最短的解决方案获胜 可以假定输入是一维数组,其长度是2的幂。 您可以使用您选择的算法,但是解决方案实际上必须是快速傅立叶变换,而不仅仅是天真的离散傅立叶变换(也就是说,它的渐近计算成本为)O(NlogN)O(Nlog⁡N)O(N \log N) 编辑: 该代码应实现标准的前向快速傅立叶变换,其形式可以在Wolfram文章的公式(3)中看到, 不允许使用现有标准库或统计信息包中的FFT函数。这里的挑战是简洁地实现 FFT算法本身。

30
将数字除以3,而不使用*,/,+,-,%运算符
在SO上引用此问题(扰流板警报!): 在Oracle采访中已经问过这个问题。 如何在不使用*,/,+,-,%操作符的情况下将数字除以3? 该数字可以签名也可以不签名。 该任务是可解决的,但是请查看是否可以编写最短的代码。 规则: 执行所需的整数除法(/3) 不要使用非基于文本运营商*,/,+,-,或%(或它们的等价物,如__div__或add())。这也适用于递增或递减运算符,例如i++或i--。可以使用运算符进行字符串连接和格式化。也可以将这些字符用于不同的运算符,例如-用于负数的一元运算符,或*在C中表示指针。 输入值可以为正值和负值任意大(系统可以处理的任何值) 输入可以在STDIN或ARGV上,也可以任何其他方式输入 创建最短的代码即可完成以上操作

25
在C ++中打高尔夫球的技巧
您在C ++中打高尔夫球有哪些一般技巧?我正在寻找可以应用于一般高尔夫问题代码的想法,这些想法至少在某种程度上是C ++特有的(例如,“删除注释”不是答案)。请为每个答案发布一个提示。
48 code-golf  tips  c++ 

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.