编程拼图和代码高尔夫

编程益智爱好者和代码高尔夫球手的问答

24
合并两个排序列表
合并排序 在此挑战中,您将实现合并排序的合并子例程。具体来说,您必须创建一个函数或程序或动词或类似词,该函数或函数或类似物包含两个列表,每个列表以升序排列,然后将它们组合成一个列表,以升序排列。要求: -您的算法必须在输入大小上采用渐近线性的时间量。请停止提供O(n ^ 2)个解决方案。 您不得使用任何能够对列表进行排序或合并列表的内置函数。作者的自由裁量权。 该代码应能够处理重复的元素。 不用担心空列表。 例子: merge([1],[0,2,3,4]) [0,1,2,3,4] merge([1,5,10,17,19],[2,5,9,11,13,20]) [1, 2, 5, 5, 9, 10, 11, 13, 17, 19, 20] 这是代码高尔夫球,所以可能最短的代码获胜!

2
填字游戏强迫!
克里斯,一个神秘的填字游戏瘾君子,针对其解决顺序有一套固定的算法。 我们将使用以上图像作为指导。 克里斯总是从第一个交叉线索开始,在这种情况下是1 Across。克里斯是一位能力强的填字游戏爱好者,因此假设他将始终知道他正在研究的线索的答案。 克里斯完成一个线索后,他将检查与已完成的线索相邻的所有线索(在第一种情况下为1 Down,2 Down和3 Down),然后以最低编号完成该线索。如果没有相邻的线索,他将转到步骤3。 如果线索使下一个数字(如步骤3中所述)同时具有交叉线索和向下线索,则他将首先完成跨线索(确定性为100%,这在OCD上是边界!)。 如果没有相邻的线索,他将转到下一个数字上的下一个可用线索(交叉或向下) 从第2步重复进行,直到完成所有线索。 亲爱的程序员,这就是您的责任所在。您的任务是创建代码,该代码可以在提供了填字游戏模板后,根据Chris解决问题的算法提供描述线索顺序的输出。 该代码将接受填字游戏模板的输入,其形式为.代表白色正方形和#代表黑色正方形。 范例: .....#......... .#.#.#.#.#.#.#. ...#...#....... .#.#.#.#.#.#.#. ....#.......... ##.#.#.#.#.#.#. ......#........ .###.#####.###. ........#...... .#.#.#.#.#.#.## ..........#.... .#.#.#.#.#.#.#. .......#...#... .#.#.#.#.#.#.#. .........#..... 输入可以通过以下方式进行:a)读取填字游戏的表示形式的文件,或b)填字游戏的每一行的行输入,后跟\n,第二个\n指示EOF。 然后,它将根据上面描述的算法确定克里斯解决该问题的方法。 输出必须采用一系列逗号分隔的指令格式,格式为n(A|D),其中n是线索编号,其后为Afor或Ddown。 因此,在上面的示例中(来自图像和示例模板,两者是相同的),输出将是: 1A,1D,2D,3D,9A,10A,4D,5D,6D,7D,8D,11A,12A,13A,15A,14D,15D,16A,17A,18D,19D,20A,21D,23A,22D,24A,25D,27A,28A,26D,29A,30A,31A 最短的代码胜出... 测试中 您必须在提交时提供代码,字节数以及以.和#格式表示的四个测试用例之一,以及从此输入生成的输出。有四个测试用例,以下三个以及上面的示例模板。 测试用例示例: 测试用例1 .....# .#.#.# ...#.. .#.#.# .....# ##.#.. 输出: 1A,1D,2D,3D,4A,5A,6A,7A 测试案例2 .....#.. .#.##..# …

17
打破一些标准![关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 9个月前关闭。 每个人都知道“规则被打破!”这句话,这是您的任务: 用任何违反标准的语言编写一些代码。这可以是任何东西,从将240伏特的USB电缆接下来,再用10mb的数据包ping路由器(不是别人的网站!)!(没有任何想法,这两种想法都可能会导致各种厄运!) 10天后获得最高支持的答案(即最严重的违规)将获胜! 规则: 该代码必须说明。 您要违反的标准必须链接到该标准,并且必须说明您正在做什么(暗示1)以破坏它。否则答案将不被接受。 只会使解释程序崩溃或使其停止工作的答案将不被接受。我想要一些创造性的答案,而不仅仅是将类似的内容粘贴𐒢到IDLE中(这会使它崩溃) 除非利用漏洞破坏标准,否则不允许利用漏洞。否则答案将不被接受 开始,玩得开心!

21
寻找局部极端
编写一个接受列表并生成局部极值列表的函数或程序。 在列表[x_0, x_1, x_2...]局部极值是x_i这样x_(i-1) < x_i和x_(i+1) < x_i或x_(i-1) > x_i和x_(i+1) > x_i。请注意,列表的第一个和最后一个元素永远不能是局部极值。 所以对于一些例子 local_extremes([1, 2, 1]) = [2] local_extremes([0, 1, 0, 1, 0]) = [1, 0, 1] local_extremems([]) = [] 这是代码高尔夫球,所以最短的代码获胜!
14 code-golf 

9
种元:获得最短答案中的最长者
您的任务(如果您接受)是编写一个程序,该程序通过计算与代码高尔夫相反的比赛的获胜者来帮助理解我对meta的建议。当然,此问题的答案将被视为建议的答案,因此您的程序(如果正确)可以计算您的答案是否将成为接受的答案。 规则 程序读取具有以下格式的多行文件(请参见下面的示例):[Language] TAB [NumberOfCharacters] TAB [LinkToAnswer] 文件名将作为参数传递给您的程序,或者将文件重定向到程序的标准输入。由您选择,给出答案时请提及方法 预期输入格式正确。无需进行错误处理。 字符数为正。您的程序必须处理的长度最大为65535。64k应该足够每个人使用:-) 程序在标准输出上输出符合meta提案思想的那些行,即 特定编程语言的最短代码胜出(简化阶段) 所有编程语言中最长的代码胜出(排序阶段) 抽奖时,应打印所有相同长度的答案 输出顺序并不重要 尽管最长的代码获胜,但这不是代码保管。对于您的编程语言,您的代码必须尽可能短。 很少尝试不缩短代码的编程语言的答案应该被否决,因为它们试图绕过这种问题的意图。如果对于一种特定的编程语言只有一个答案,那么它将被视为优胜者,因此您可以开始发布其代码。 输入文件示例(如果格式有问题,请用单个选项卡分隔): GolfScript 34 http://short.url/answer/ags GolfScript 42 http://short.url/answer/gsq C# 210 http://short.url/answer/cs2 Java 208 http://short.url/answer/jav C# 208 http://short.url/answer/poi J 23 http://short.url/answer/jsh Ruby 67 http://short.url/answer/rub C# 208 http://short.url/answer/yac GolfScript 210 http://short.url/answer/210 预期输出(顺序不重要): C# 208 http://short.url/answer/poi C# …

30
编写一个函数,该函数接受(x,y)并将x返回y的幂,而没有循环[关闭]
已关闭。这个问题需要细节或说明。它当前不接受答案。 想改善这个问题吗?添加细节并通过编辑此帖子来澄清问题。 11个月前关闭。 这是一个非常简洁的挑战。 编写一个带有两个参数的函数或过程,x并使用循环或内置的幂函数y返回WITHOUT 的结果。xy 获胜者是最具创造力的解决方案,将在3天后根据最高投票数选出。

7
解决反向箭头迷宫
这是一个“箭头迷宫”: v < > v > ^ > v ^ < * 该*标志的地方在那里你会完成。您的目标是找到迷宫的起始位置(因此称为反向迷宫)。在这种情况下,它>是第二行的第一行。 v------< S-+---v | | >--^ >-+-------v ^ < * 请注意,必须使用所有箭头。另请注意,您可以假设将用等长的空格填充行。 您的程序必须以任何合理的方式输入迷宫(从文件,消息框等输入stdin),但是迷宫必须是完整的。例如,您不能输入以逗号分隔的行;输入必须完全是迷宫。 您必须以任何合理的方式输出迷宫的起点。例如,您可以 输出起点的坐标 输出整个迷宫,开始箭头替换为 S 输出除开始箭头外的所有箭头的整个迷宫(保留空白)! 等等 只要您可以通过输出判断哪个箭头是开始箭头,那么就可以了。例如,输出 "0" "2" 没关系,无论换行和引号如何,因为您仍然可以知道开始的位置。 这是code-golf,因此以字节为单位的最短代码将获胜。
14 code-golf 

4
编写代码以确定可接受的答案
发布该问题的答案,评估该问题的任何答案并确定是否获胜。 谁赢: 根据3月2日(星期日)1700 UTC的最高答案,获胜者将根据最多的答案获胜。 欢迎并鼓励您随着比赛的进行更改自己的答案。请不要改变别人的。 领带由最短的代码决定。 不管您平时会做多少,如果有什么东西可疑,我都会取消您的参赛资格。 我不会接受自己的答案,但会用它来评估您的答案。 规则: 您的计算必须为任意答案提供数值分数(为简便起见,算法的输入要么是答案的ID,要么是页面上答案的减价)。 您的分数必须至少有一个获胜者,而且除了您的答案以外,还必须有可能获胜。 您的算法不能使用非常具体的答案,也不能使用用户名或时间戳。我将最终决定“非常具体”的含义,但我鼓励社区维持治安和公众羞辱。 您的代码必须编译,运行并给出任何答案的分数。 如果未在Ideone上列出,请提供指向执行代码的方法的链接。见下文。

12
脑力激荡的方向
您的任务(如果您选择接受它的话)是构建一个程序,该程序分析并评估给出方向(左或右)的令牌字符串(从左到右,具有任意长度)。这是四个可能的标记及其含义: > go right one single step < go left one single step -> go right the total amount of single steps that you've gone right, plus one, before you previously encountered this token and reset this counter to zero <- go left the total amount of single steps that …

7
是素数吗?无数学[关闭]
已关闭。这个问题需要细节或说明。它当前不接受答案。 想改善这个问题吗?添加细节并通过编辑此帖子来澄清问题。 3年前关闭。 用任何一种语言来编写程序或函数,以表明输入是否为质数。 输入是一个字符串,表示以10为底的自然数。 输出是两个字符串“ Prime”或“ Not !!”之一。可以正确识别输入。 程序中的任何地方均不允许使用算术运算符,按位运算符,数字变量和常量,一般为“数学运算”等。您应该使用字符串操作来执行所有必要的“计算”。 您可以比较字符串长度(即数字)-如果不比较,则为-10。 您的程序应该可以在任何长度的输入上工作(给定足够的内存和时间)。 最低字节数(UTF-8)获胜。

1
JavaScript加载和SHA-256
这是一个带有实际应用程序的代码难题。当前使用的某些浏览器(如果您输入的网址类似于 data:text/html,<script>alert("hi")</script> 将执行给定的JavaScript代码。现在假设您有一个看起来像(伪代码)的URL: data:text/html,<script> myPublicKey="12345678"; cryptoLib=download("http://example.com/somecryptolib.js"); if(sha256sum(cryptoLib) == "12345678") eval(cryptoLib) </script> 如果您将此代码作为QR代码打印在名片上,那么使用适当的浏览器访问该URL的任何人都将获得一个预加载了公钥的公钥加密客户端,而无需安装任何东西。由于进行了哈希验证,因此即使他们的ISP干扰了流量,您也可以确信他们拥有真正的加密软件。 不幸的是,此伪代码的实际版本对于QR码来说相当长。我的挑战是:您能做到多短?一个实现将: 成为数据:...从Chrome和Firefox的地址栏中正确执行的URL。(要生成有效的数据:URL,您必须将%编码为%25,并删除换行符) 嵌入URL和SHA-256哈希,最好在开头附近添加纯文本字符串文字 使用XMLHttpRequest(或类似的API)从URL下载文件。(请注意,服务器必须包含一个Access-Control-Allow-Origin:*标头,才能正常工作。) 如果该URL成功加载,并且结果是带有预期哈希值的文件,请使用eval()对其进行处理。否则,什么也不做,或显示错误消息。 Chrome和Firefox中都存在的所有内置JavaScript函数都是公平的游戏,但是无法加载库。 使用尽可能少的字节 我使用CryptoJS(缩小版)制作了一个简单的版本: data:text/html,<script> u = 'http://localhost:8000' h = '5e3f73c606a82d68ef40f9f9405200ce24adfd9a4189c2bc39015345f0ee46d4' // Insert CryptoJS here r = new XMLHttpRequest; r.open('GET', u, false); r.send(); if(CryptoJS.SHA256(r.response) == h) eval(r.response); </script> 从缩小器出来的是: data:text/html,<script>u="http://localhost:8000";h="5e3f73c606a82d68ef40f9f9405200ce24adfd9a4189c2bc39015345f0ee46d4";var CryptoJS=CryptoJS||function(k,w){var f={},x=f.lib={},g=function(){},l=x.Base={extend:function(a){g.prototype=this;var c=new g;a&&c.mixIn(a);c.hasOwnProperty("init")||(c.init=function(){c.$super.init.apply(this,arguments)});c.init.prototype=c;c.$super=this;return …

9
批量打高尔夫球的技巧
Windows Batch(CMD)可能是最不适合代码打标的语言。 避免换行符。如果您要查找以字节为单位的最短代码(而不是字符),则将希望摆脱所有不必要的回车符(换行符= 2个字节)。您可以使用该&操作来执行此操作,为每个命令修剪一个字节。 echo Hello&echo World. 设置变量。使用开关设置变量时,set解析器将忽略空格。 set /a a+=1 set /p b="User Input: " :: Will be handled the same as.. set/aa+=1 set/pb="User Input: " 请注意,相同的解析器规则并不适用于所有命令-例如,循环需要空格。除了set, string, or command(即括号内的内容)和单词之间do。 for /f %%a in (file.txt)do ... 简单的数学表达式。另外,请注意我在set /a命令中用于递增的表达式。对于简单的数学表达式,请使用+= -= *= /=代替(例如)set /a a=%a%+1。 收集命令输出。要获取命令的输出,有时输出到文件或从文件中读取有时会很有用,否则您可能在其中使用了for循环来收集输出: for /f %%a in ('echo …
14 code-golf  tips 

2
点亮Roguelike
给定一块板,编写最短的程序或函数以显示或返回玩家看到的字符。如果有可能,可以在角色和玩家之间划一条线,而不会越过阻碍视线的角色,则该角色就在视线范围内。 输入: @代表玩家的位置。输入中将只有这些之一。 任何与正则表达式匹配的字符都会[#A-Z]阻碍视觉。 任何符合条件的字符都[ a-z]可以使人视觉。 不会有无效字符 您可以保证输入矩形 行定义如下: 将向量定义为大小和方向 方向是N,NE,E,SE,S,SW,W,NW之一 数量级是沿该方向要计数的字符数 令初始向量称为d 1;第二个向量称为d 2 d 1或d 2之一必须具有大小1; 另一个可能有任何大小 d 1的方向必须与d 2的方向相邻(例如:N和NE) 一条线被定义为沿路径通过应用d 1,然后d 2,d 1,d 2 ... 标记的所有字符。 采样线(由.s 给出): d 1 =(幅度:4,方向:E) d 2 =(幅度:1,NE方向) ..... ..... ..... @.... 输出: 每个可见字符都在正确的位置,.以空格代替。 每个不可见字符的空间。 输入样例: @ K J L o …
14 code-golf 

4
强调高尔夫的语法!
高尔夫球手。 我们共同努力,产生的代码简洁,功能漂亮且比原始小说中的《歌剧魅影》丑陋。 现在是时候让我们将美丽带回到编程世界了。带颜色。以简洁的方式,功能上的美观比原始小说中的歌剧魅影更丑陋。 我们将要编写一个色彩丰富的语法荧光笔。以最短的代码量。 您将通过输入文件或Stdin收到有效的C文件。C文件将使用您选择的行约定,并且仅包含ASCII字符32-126。您必须将其转换为至少在Chrome中正确显示的HTML文件,该文件以语法高亮显示源代码。输出可能在文件中或到Stdout。 您必须突出显示: 绿色(#00FF00)中的所有字符串和字符(包括引号字符)。字符串可能包含转义字符。 蓝色的所有C保留字(#0000FF)。 黄色所有评论(#FFFF00)。 Pink中的所有C预处理程序指令(#FF00FF)。 在Chrome中显示时,输出必须: 采用固定宽度的字体 在原始来源中出现的任何地方显示新行 准确地复制空白。制表符应视为4个空格。 奖金 x 0.9(如果包含行号)。行号必须至少能够达到99999。所有源都必须仍然对齐-因此,行号较小的源代码应与行号较高的源代码在同一位置开始 如果每行的背景在浅灰色(#C0C0C0)和白色(#FFFFFF)之间交替,则为x 0.8 x 0.9(如果您的源代码是用C编写的,并且可以正确格式化自己)。 计分 这是代码高尔夫。分数是源代码的字节数乘以任何奖励。获胜者是得分最低的高尔夫球手。
14 code-golf  string 

4
进行多项选择测试
我给你测试!您的测试就是测试。测试是用测试人员提供给您的测试来测试被测者,其中包含少量测试代码。具体来说,您将提供选择输入的多选测试。 在此挑战中,您必须输入如下内容: 1. Our site is called Programming Puzzles & Code ________. A: Debugging *B: Golf C: Hockey D: Programming 2. What is the *most* popular tag on our site? A: [debug] B: [program] *C: [code-golf] D: [number] E: [c++] 3. We are part of the ________ Exchange network. *A: …
14 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.