编程拼图和代码高尔夫

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

4
写一个班次翻译
编辑:你们中有些人怀疑,官方解释器中有一个错误:组成顺序.颠倒了。我有两种版本的解释器,在这里使用了错误的一种。这些示例也是针对此错误版本编写的。我已经修复了存储库中的解释器以及以下示例。的描述>也有点模棱两可,所以我已经解决了。而且,为此花了很长时间的道歉,我陷入了一些现实生活中。 EDIT2:我的解释器在实现中存在一个错误,该错误.反映在示例中(它们依赖于未定义的行为)。现在,此问题已解决。 介绍 Shift是我几年前制作的一种深奥的函数式编程语言,但今天发布了。它基于堆栈,但是像Haskell一样具有自动监视功能。 规格 Shift中有两种数据类型: 功能,具有任意的正元数(输入次数),并且其返回的输出的列表。例如,一个重复其唯一输入的函数具有arity 1,而交换其两个输入的函数具有arity 2。 空格完全相同,除了没有功能外没有其他目的。 Shift程序包含零个或多个命令,每个命令都是一个ASCII字符。共有8条命令: !(应用)弹出的功能f和值x从堆栈,并适用f于x。如果f为1,则将列表f(x)添加到堆栈的最前面。如果具有arity n > 1,则将一个新的(n-1)-ary函数g推入堆栈。它接受输入并返回。x1,x2,...,xn-1f(x,x1,x2,...,xn-1) ?(空白)将空白推入堆栈。 +(clone)将复制其输入的一元函数压入堆栈:任何值x都映射到[x,x]。 >(shift)将接受n-ary函数的一元函数压入堆栈f,并返回(n+1)-ary函数g,该函数忽略其第一个参数x,调用f其余参数,并x在结果前加钉。例如,shift(clone)是一个二进制函数,它接受输入a,b并返回[a,b,b]。 /(fork)将接受三个输入的三元函数压入堆栈a,b,c,[b]如果a为空白,[c]则返回,否则返回。 $(呼叫)推到堆栈弹出的功能的二元函数f和一个值x,并适用f于x完全一样!一样。 .(chain)将一个二进制函数压入堆栈,该函数会弹出两个函数f和g,并返回它们的组成:h具有与ar相同的Arity 的函数,该函数f通常接受其输入f,然后将它们应用于它们,然后完全应用于g结果(调用它的次数取决于其Arity的规定),而输出中的未使用项f保留在的结果中h。例如,假设f的是,克隆其第二个参数,和一个二进制函数g是呼叫。如果堆栈包含[f,g,a,b,c]并且我们包含.!!,那么它包含[chain(f,g),a,b,c]; 如果我们做!!下一个,然后f首次应用于a,b,产生[a,b,b],则将g其应用于该元素的前两个元素,因为其Arity为2,产生[a(b),b],堆栈最终为[a(b),b,c]。 @(比如)推送一元函数,该函数仅返回其输入,并0在其为空白以及1为函数的情况下进行打印。 请注意,除!简单地将一个值压入堆栈外,所有命令均无法执行输入,而输出任何内容的唯一方法是use @。通过逐一评估命令,在调用“ say”时打印0s或1s并退出来解释程序。此处未描述的任何行为(应用空格,应用长度为0或1的堆栈,在空格上调用“ chain”等)都是未定义的:解释器可能崩溃,无提示失败,要求输入或执行任何操作。 任务 您的任务是为Shift编写解释器。它应该从STDIN,命令行或函数参数中获取要解释的Shift程序,然后打印到STDOUT或返回0s和1s 的结果(可能是无限的)输出。如果编写函数,则必须能够以某种方式访问​​无限长的输出(Python中的生成器,Haskell中的惰性列表等)。另外,您也可以输入另一个数字n,n如果长度大于,则返回至少一个字符n。 最低字节数获胜,并且不允许出现标准漏洞。 测试用例 此Shift程序打印01: ?@!@@! 从左侧开始:推一个空格,按下say,然后将say应用于该空格。这输出0。然后,将发言权推两次,然后将第二个发言权应用于第一个发言权。这输出1。 该程序永远循环,不产生任何输出: $+.!!+!! 推动call和clone,然后对其应用链(!由于chain是二进制函数,我们需要两个s )。现在,堆栈包含一个函数,该函数接受一个参数,将其复制,然后在第二个参数上调用第一个副本。使用+!!,我们复制此函数并对其进行调用。 该程序打印0010: ?@$.++>!.!!.!!.!!!!+?/!!!@!@>!!! 推空白并说。然后,编写一个二进制函数,该函数复制其第二个参数b,然后复制第一个参数a并将其与自身组合,然后将该合成应用于的副本b,返回[a(a(b)),b]。其应用到说和空白,然后申请比如说剩余堆栈上的两个元素。 打印此程序0。对于!!!您追加的每个内容,它都会打印出一个额外的0。 ?@+$>!>!+>!///!!>!>!.!!.!!.!!+!!!! 推空白并说。然后,组成一个三元函数,将其f,g,x作为输入并返回[f,f,g,g(x)]。克隆该函数,并将其应用于自身(例如)和空白。该应用程序不会更改堆栈,因此我们可以根据需要多次应用该函数。 此程序将打印无限序列001011011101111...,其中1s 的数量始终增加一: @?/!@>!??/!!>!+.!!.!!.!!.+>!.!!$$$$+$>!>!$>!>!+>!$>!>!>!+>!>!///!!>!>!>!.!!.!!.!!.!!.!!.!!.!!.!!.!!.!!+!!!!! 存储库包含带注释的版本。

6
列出两个芬兰名词的案例
介绍 在这种挑战,你的任务就是要正确列出案件 2个芬兰名词。不同之处在于您可以使用其中一个清单作为指导来制作另一个清单。 名词 我们使用以下两个磁偏角表作为数据。他们以单数形式:复数形式列出了两个名词的情况,每行一个情况,与上面链接的Wikipedia文章中的顺序相同。 表1:ovi(“门”)的案例 ovi : ovet oven : ovien oven : ovet ovea : ovia ovessa : ovissa ovesta : ovista oveen : oviin ovella : ovilla ovelta : ovilta ovelle : oville ovena : ovina oveksi : oviksi ovin ovetta : ovitta ovine 表2:jalka(“脚”)的病例 jalka : …

7
本周四年级数学作业:效率最低的旅行推销员
我女儿的数学作业有以下任务。想象一下,有六个朋友生活在一条名为E,F,G,H,J和K的直线上。他们在直线上的位置如下所示(未按比例): 因此,F从E居住五个单元,从G居住两个单元,依此类推。 您的作业:设计一个程序,该程序以朋友的位置和n为输入,以总长度n个单位的长度来精确地访问每个朋友一次。如果找到它,它应该报告该路径(例如,对于长度17,它可能报告“ E,F,G,H,J,K”,并且如果不存在任何解决方案,则应正常退出。对于它的价值,我完成了Mathematica中271个字节的非解决方案,我怀疑这可能比这更简洁。

4
用quine写一个二进制计数器
编写两个代码片段,我们将它们称为s_zero和s_one。 程序(l,n)由s_zero和s_one的l个副本组成,对应于二进制中n的数字,并在左侧填充s_zero。 例如,如果s_zero = foo和s_one =,bar则 程序(4,0 )= foofoofoofoo 程序(4,1)= foofoofoobar 程序(4,2)= foofoobarfoo 等等。 程序(l,n)必须将程序(l,(n + 1)mod(2 ^ l))的源打印为标准输出。在上面的示例中,执行时foobarfoofoo必须打印foobarfoobar。 您的分数是片段s_zero和s_one的长度之和

2
停车场的卡车
停车场中有P个停车位,尽管有些空间被以八面兽#为代表的汽车占据,而自由空间是点.。很快就有T卡车抵达,每辆卡车将恰好占据L个连续的空间。卡车不必彼此相邻停放。 您的任务是创建一个程序,该程序将找到需要停放以停放所有卡车的最少数量的汽车。总是会有足够的空间来容纳所有卡车,这意味着T*L<P 输入值 在第一行中,将有三个整数,P,T和L由空格分隔。在第二行中,将出现一串P字符,它们代表处于初始状态的停车场。 输出量 在第一行也是唯一的一行中,您的程序应打印出需要停放以停放所有卡车的最少数量的汽车。 测试用例 输入: 6 1 3 #.#.## 输出: 1 输入: 9 2 3 .##..#..# 输出: 2 输入: 15 2 5 .#.....#.#####. 输出: 3 最短的代码获胜。(注意:如果可能的话,我对pyth实现特别感兴趣)
10 code-golf 

3
网格上的转子路由器
输入值 您的输入是一个字符串,由换行符分隔成一些整数2n+1的长度行。整数不属于输入;您必须从字符串中进行计算。这些行由“方向字符”组成。如果换行符引起问题,则可以用竖管替换它们。2n+1n ≥ 0n>^<v| 输入形成一个大小为方格的正方形网格(2n+1)x(2n+1),并且网格的每个像元都解释为转子路由器,它指向四个基本方向之一。我们继续将令牌放在网格中心的路由器上,然后路由器将以以下方式移动令牌。当令牌落在路由器上时,路由器将沿逆时针方向旋转90度,并将令牌在其指向的新方向上移动一步。如果它落在另一个路由器上,则重复该过程,但是最终,令牌将脱离网格。 输出量 您的输出是路由器的最终配置,格式与输入相同。 例 作为示例输入,请考虑3x3网格 <^< ^>< >^v 中央路由器已高亮显示以指示令牌(很难看到)。中央路由器旋转以面向北方,并将令牌移动到第一行的中央单元格: <^< ^^< >^v 此路由器向西旋转,并将令牌发送到左上角: <<< ^^< >^v 角落中的路由器将令牌发送到南方,因此它现在位于中间行的最左侧单元格: v<< ^^< >^v 该路由器旋转以面向西,并将令牌发送出网格。 v<< <^< >^v 这是最终的网格配置,因此您的程序应将其输出。请注意,在更复杂的示例中,令牌在脱离网格之前可以多次通过同一路由器。 规则 您可以编写函数或完整程序。这是代码高尔夫球,因此最低的字节数为准。不允许出现标准漏洞。您可以确定输入和/或输出中是否有尾随换行符。 测试用例 Input: v Output: > Input: <^< ^>< >^v Output: v<< <^< >^v Input: >>^>> v<vv< >^>^< ^<>>^ vvv>> …
10 code-golf  grid 

4
将代码行放到代码中,然后全部摇晃
使用一种编程语言编写5个单行程序,当分别运行时,每个程序都会输出不同的第一节经文给哈里·尼尔森(Harry Nilsson)1972年的歌曲《椰子》。 哥买了一个椰子,他买了一毛钱 他的妹妹有另外一个,她付出它的石灰 她把石灰的椰子,她喝了他们俩了 ,她把石灰的椰子,她喝了他们俩了 她把石灰放在椰子里,她把它们都喝了 (完整歌词) 最后3行具有相同的歌词,因此您的最后3个程序也可能相同。 这5个单行程序有5种阶乘或120种方式,可以在一个5行程序中每行安排一个。您必须优化单行程序,以使对于这120种组合中的尽可能多的5行程序以正确的顺序输出整节经文,与上面显示的完全一样。 例 最简单的答案是5条单行打印语句,最后3条相同: print('Brother bought a coconut, he bought it for a dime') print('His sister had another one, she paid it for a lime') print('She put the lime in the coconut, she drank them both up') print('She put the lime in …

1
坏消息,有人
在《 Futurama》情节中,剧组的Benda囚犯成员相互交换尸体,但要注意的是,没有一对尸体可以交换思想。 挑战 编写一个程序或函数,该程序或函数接受已经发生的有效的身心交换,并输出一组合法的交换,这些交换将使每个头脑返回其原始身体。这些身心集合的标识符必须是不包含换行符的字符串。您最多可以添加两个(没有明显名字的)人,他们之前没有与输入组的交换。(证明您最多只需要2个其他实体),但是,您必须添加解决问题所需的最少人数。 输入和输出可以采用任何清楚的形式,但是,任何其他信息都不能存储在其中。您可能会认为它始终有效。这是代码高尔夫,所以获胜者是字节最少的提交。 例子 [('A','B'),('C','D')] -> [('A','C'),('B','D'),('A','D'),('B','C')] ['A','B'] -> ['C','D','A','C','B','D','A','D','B','C'] [('A','B'),('C','D'),('A','C'),('A','D')] -> [('B', 'E'), ('A', 'E'), ('C', 'B'), ('C', 'E')] "A\nB\nC\nD\n" -> "A\nC\nB\nD\nA\nD\nB\nC\n" 节目中的一个: [("Amy","Hubert"),("Bender","Amy"),("Hubert","Turanga"),("Amy","Wash Bucket"),("Wash Bucket","Nikolai"),("Phillip","John"),("Hermes","Turanga")] 演出的解决方案,如下所示,是无效的: [("Clyde","Phillip"),("Ethan","John"),("Clyde","John"),("Ethan",Phillip"),("Clyde","Hubert"),("Ethan","Wash Bucket"),("Clyde","Leela"),("Ethan","Nikolai"),("Clyde","Hermes"),("Ethan","Bender"),("Clyde","Amy"),("Ethan","Hubert"),("Clyde","Wash Bucket")] 这是无效的,因为Ery和Clyde是不必要的,因为Fry Phillip,Zoidberg John和Hermes Hermes 很少使用该机器。下面提供了针对这种情况的有效解决方案: [("Philip","Hubert"),("John","Wash Bucket"),("Philip","Turanga"),("John","Nikolai"),("Philip","Hermes"),("John","Bender"),("Philip","Amy"),("John","Hubert"),("Philip","Wash Bucket")] 请注意,对于任何有效输入,显然都有许多可能的答案。任何有效。
10 code-golf  math 

5
混乱与重建者:用俄罗斯方块砖编码-重建者答案区域
这是Jumblers vs Rebuilders的伴随问题:使用Tetris Bricks进行编码,Rebuilder可以在其中发布其解决方案。 正如我们应该在哪里放置强盗?它为强盗提供了更多的格式化自由,并让他们获得了声望。 仅当您对Jumblers vs Rebuilders:使用Tetris Bricks进行编码时仍未破解的答案时,才回答此问题。请在你的答案的链接,这个问题的答案,并在这个问题的答案链接到你的答案评论。 该问题的公认答案将是胜出的重建商。 计分板只会出现在另一个问题中。 COTO慷慨地制作了一个JSFiddle,以轻松操纵代码块。我已经更新了此小提琴,因此不需要ES 6,并且将此Stack Snippet最小化了: <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script><script>function parseSpec(s){function first(){var e,t;t=S.findIndex(function(t){return(e=t.findIndex(function(e){return/\S/.test(e)}))!=-1});return t==-1?null:[e,t]}function at(e){var t=e[0],n=e[1];return n>=0&&n<S.length&&t>=0&&t<S[n].length?S[n][t]:" "}function wipe(e){var t=e[0],n=e[1];if(n>=0&&n<S.length&&t>=0&&t<S[n].length)S[n][t]=" "}var P,S=s.split("\n").map(function(e){return e.split("")});var oPats=$(".proto-tet [pat]").get().map(function(e){return{sPat:eval("["+$(e).attr("pat")+"]"),e:e,block:function(e){return[at(e)].concat(this.sPat.map(function(t){return at([e[0]+t[0],e[1]+t[1]])}))},wipe:function(e){this.sPat.forEach(function(e){return wipe([P[0]+e[0],P[1]+e[1]])})},match:function(e){return!/\s/.test(this.block(e).join(""))}}});window.oPats=oPats;while(P=first()){var oPat=oPats.find(function(e){return e.match(P)});if(!oPat){orphan(at(P));wipe(P);continue}createPiece(oPat.e,oPat.block(P));wipe(P);oPat.wipe(P)}}function createPiece(e,t){function r(e){var t=$(this).position();G.isIgnoreClick=false;G.eDrag=this;G.iOffsets=[e.clientX-t.left,e.clientY-t.top]}function i(){if(G.isIgnoreClick)return;var e=$(this);s($(".proto-tet ."+e.attr("rr")),function(e,t){return n[t-1]},e.css("left"),e.css("top"));e.remove()}function s(e,t,n,s){e.clone().html(e.html().replace(/@(\d)(\d)/g,t)).appendTo("body").on("mousedown",r).click(i).css({left:n,top:s})}var n=[];s($(e),function(e,r,i){return n[r-1]=t[i-1]},18+G.iSpawn%8*18*4+"px",18+~~(G.iSpawn/8)*18*4+"px");G.iSpawn++}function init(){$(document).on("mouseup",function(){return G.eDrag=null}).on("mousemove",function(e){if(G.eDrag){var t=$(G.eDrag),n=Math.round((e.clientX-G.iOffsets[0])/18)*18,r=Math.round((e.clientY-G.iOffsets[1])/18)*18,i=t.position();if(n!=i.left||r!=i.top)G.isIgnoreClick=true;t.css({left:n+"px",top:r+"px"})}})}function orphan(e){error("Spec character …

9
构建一个rot32加密器
构建高尔夫rot13加密器太容易了,因为字母在ASCII字符空间中的顺序都相同。让我们尝试使用rot32引擎。 您的任务是构建一个函数,该函数将Base64字符串作为输入并返回相同的字符串,但每个字母从其原始字符开始旋转32个符号(本质上,第一位被翻转)。 用于此问题的base64编码字符串0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ+/的填充字符为=。这是为了防止原本使用或导入内置Base64库的解决方案,该库通常以字符串开头A而不是0。 Example inputs and outputs: > rot32("THE+QUICK+BROWN+FOX+JUMPS+OVER+THE+LAZY+DOG=") nb8ukoc6eu5liqhu9irudogjmuip8lunb8uf4tsu7ia= > rot32("NB8UKOC6EU5LIQHU9IRUDOGJMUIP8LUNB8UF4TSU7IA=") h5Eoei6C8oBfckboFclo7iadgocjEfoh5Eo9AnmoDc4= > rot32("Daisy++daisy++give+me+your+answer+true/I+/+m+half+crazy++all+for+the+love+of+you") 7GOY2uuJGOY2uuMO/KuSKu2U+XuGTY0KXuZX+KvcuvuSuNGRLuIXG32uuGRRuLUXuZNKuRU/KuULu2U+ 以任何语言进行的最短程序都将获胜。
10 code-golf 

12
分摊悖论
鉴于: 自然数Ş。 总和为1 的N个有理权重W的列表。 返回由N个非负整数组成的列表L,例如: (1) sum(L) = S (2) sum((S⋅W_i - L_i)^2) is minimal 换句话说,S⋅W_i用整数尽可能接近s。 例子: 1 [0.4 0.3 0.3] = [1 0 0] 3 [0 1 0] = [0 3 0] 4 [0.3 0.4 0.3] = [1 2 1] 5 [0.3 0.4 0.3] = [2 2 1] or …

1
和臭气-第一部分
设置 考虑一个包含29个编号单元格的奇怪形状的盒子,如下图1所示。 在此2D盒子内有两种正方形动物:粗毛和臭鼬。图1(a)用蓝色显示了一些粗枝,用红色显示了一些臭味。每个生物恰好占据一个网格单元。该盒子可能包含0到26个粗线之间的任何位置,但始终只包含两个臭鼬。 在重力作用下,碎片和臭气坐在盒子的底部,堆积在它们下面的任何物体的顶部。这两个物种都非常懒惰,并且永远静止不动。 该框还包含一个圆点,用黑色正方形表示,恰好占据一个网格单元。该STOT是不受到重力。 如图所示,该盒子具有位于单元28底部的一个开口。 为了以文字形式表示框中的粗线,阴茎和茎的配置,我们使用29个字符的字符串(每个网格单元一个字符),按枚举顺序.表示,表示一个空单元格,o表示一条粗线,x表示一个污点,并@代表矮胖。例如,图1(a)的配置由字符串表示.........@...o....ooo..xox...。 操作方式 盒子可以旋转 90°的任意倍数。当盒子旋转时,叶屑和臭虫在它们的网格内保持静止。旋转完成后,它们会直接向下掉落,直到i)它们被下面的墙壁堵住;ii)它们被下面的小树枝,sm茎或草梗堵住;或者iii)它们掉落到单元格28的孔中并退出框。矮脚不会掉下来;即使生物停留在其当前细胞上,它也保持固定在其当前细胞中。 在生物掉落并达到新的稳定状态之前,不能再次旋转盒子。 从字面上看,框旋转表示+为顺时针旋转90°,旋转|180°和-逆时针旋转90°。 此外,可以在四个罗盘方向上以一个网格单元为增量移动笔杆。举动可能不会:i)引起桩与生物之间的碰撞(即,目标网格单元必须为空),ii)导致桩与壁之间的碰撞,或者iii)导致桩通过以下方式离开箱子单元格28中的孔。 另外,如果小脚上有任何生物(相对于当前重力),小脚也可能不会移动。 以文字,STOT移动被记<左,>右,^对了,v对了。总是相对于图中所示的“标准”(非旋转)框架指定点移动。也就是说,如果该笔杆位于单元格10中,则移动^将始终将其移动到单元格5中,并且该移动>将始终将其移动到单元格11中。框的方向不会影响移动的方向。 使用从左到右的字符串对操作序列进行编码。例如,字符串+<<^-表示盒子顺时针旋转90°,然后针杆左移两次并向上移动一次(相对于标准框架),然后盒子逆时针旋转90°回到其原始方向。 挑战 出于非常好的原因(我无法透露),我们希望从包装盒中拔出所有胡扯,而又不拔出一个sm子。为此,我们可以使用上面具体描述的操作。 在解决此问题之前,我们应该模拟一下各种操作将如何影响包装盒的内容,这是此挑战的重点。 您必须编写一个程序,该程序接受来自stdin(或等效)的两个参数: 描述盒子初始状态的字符串 一系列的操作 您可以假设这两个参数在语法上都是有效的,该框以标准方向开始,并且该框的初始状态是稳定且合法的。 程序必须输出到stdout(或等效的)以下之一: (情况1)如果移动顺序合法(不违反短杆移动规则)并且不导致任何臭味离开盒子,盒子的最终状态,用字符串表示。盒子的最终方向并不重要。 (案例2)单个感叹号!,如果移动顺序不合法或导致任何臭味离开盒子 计分 获胜的程序是按字节数计算的最短程序,它受制于一些非常有利可图的奖金乘数: 如果不是为情况1打印编码的输出,则声明为0.65的乘数,程序将使用包装字符,臭味,臭脚和空单元格的规范字符,以最终状态和方向输出盒子的ASCII图片,而不是输出情况1的编码输出,并放置一个*单元格中位于孔28外部的单元格中。前导和尾随空格将被忽略。 例如,如果将图1(a)旋转90°,则输出为 . . ..... .o... xo.@. *ooo.. x . 如果不是为情况1打印编码的输出,则程序要求输出0.22的乘数,该程序将输出图像文件或显示GUI窗口,并以最终状态和方向显示框的图片。图片应采用图1(a)的样式,并使用彩色框显示网格单元,墙壁和生物/脚架。 如果不是为情况1打印编码输出,则程序声明0.15的乘数,该程序将输出动画的.gif或动画的GUI窗口,以1秒的间隔显示模拟中的所有中间状态。适用与0.22乘数相同的图像规则。动画的第一帧应描绘模拟的初始状态。此外,动画应显示“隐藏”的中间状态,即 旋转后,每动画帧中的小球/ mols进入稳定配置的状态 盒子在180°旋转的中间90°旋转状态 如果程序产生上述样式的动画.gif或动画GUI窗口,但以20 fps的速度运行并显示,则声明乘数为0.12 盒子旋转的平滑连续动画 平滑,连续地动画显示小脚移动,以及滑倒的小草/臭虫处于稳定状态 穿过盒子28孔掉落的碎片应显示为从盒子中出来,并且应该完全消失在外面。您可以为动画选择自己的时间,只要执行不超过1次/秒即可。 总分是floor( base …

10
验证魔术广场
甲幻方是与侧N组成的不同的正整数1,2的编号的正方形阵列,...,ñ ²布置成使得所述的总和Ñ号码以任何水平,垂直,或主对角线行总是相同的数字,称为魔术常数。 您的程序必须通过std-in输入一个数字,该数字指定正方形的边长,然后指定正方形中的数字。没有号码可多次使用,没有数量大于ň可以使用²,和所有的数字必须大于0,程序必须确定数量的该组合是否是幻方。
10 code-golf  math 

5
实现类似t9的功能
今天的挑战是实现类似t9的功能。 您将实现一个只有2个参数的函数。 您将收到一个字符串形式的电话号码,以及一个带有单词列表的文本文件的内容(不要使用特定的换行符样式)。 您可以使用链接https://raw.githubusercontent.com/eneko/data-repository/master/data/words.txt来测试功能,或使用/usr/share/dict/words(检查的文本文件的单词列表[关闭]更多信息)。 您可以假设您将始终收到至少两个数字。 给定数字,您将从单词列表中读取并返回以映射到这些单词的字母开头的单词。这意味着输入只能是2到9之间的数字。 如果收到无效的输入,则可以执行任何操作。 如果没有找到匹配的,你可以返回一个空列表,null/ nil或0。 请记住,手机密钥已映射到它们的等效字符: 0和1无效 2个匹配项[abc] 3个符合的[def] 4场比赛[吉] 5个匹配项[jkl] 6场比赛[mno] 7个匹配项[pqrs] 8个匹配项 和9场比赛[wxyz] 例子: f('52726') //returns ["Japan","japan","Japanee","Japanese","Japanesque"...,"larbowlines"] f('552') //returns ["Kjeldahl","kjeldahlization","kjeldahlize"...,"Lleu","Llew"] f('1234') //makes demons fly out your nose or divide by 0 f('9999') //returns ["Zyzzogeton"] f('999999') //returns [] or null/nil or 0 运行功能后,您可以按所需的任何方式打印它。 规则: 标准漏洞无效 …

24
警察和强盗保龄球(强盗)
强盗的线 在这种挑战,你的目标是打击由警察(他们的代码编写一些代码在这里通过修改)。在以下情况下,您已经破解了他们的代码: 修改后的代码与其之间的最大levenshtein距离为10,并且字符数更少 给定相同有效输入的函数,将以相同版本的相同语言产生相同的输出 您在原始帖子的168小时(1周)内发布了修改后的版本。 修改后的代码只能具有可打印的ASCII。 发布破解版本后,您应该在原始代码中留下评论,说它已被破解并带有指向您的破解的链接。 您的分数是所有答案之间的总Levenshtien距离。最高分获胜。 随行的Cops线程可以在这里找到。

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.