编程拼图和代码高尔夫

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

12
将括号和方括号评估为整数
编写一个程序,()[]使用满足以下要求的四个字符组成的字符串: 每个左括号(都有一个匹配的右括号)。 每个左括号[都有一个匹配的右括号]。 配对的括号和方括号不会重叠。例如[(])是无效的,因为匹配括号没有完全包含在匹配括号中,反之亦然。 第一个和最后一个字符是一对匹配的括号或括号。所以([]([]))和[[]([])]是有效的,但[]([])不是。 (输入格式的语法为<input> ::= [<input>*] | (<input>*)。) 每对匹配的括号和括号都得出一个非负整数: 匹配括号内的对值全部相加。空匹配()具有价值0。 匹配括号内的对值全部相乘。空匹配[]具有价值1。 (一个数字的总和或乘积是相同的数字。) 例如,([](())([][])[()][([[][]][][])([][])])可以细分并评估为9: ([](())([][])[()][([[][]][][])([][])]) <input> (1 (0 )(1 1 )[0 ][([1 1 ]1 1 )(1 1 )]) <handle empty matches> (1 0 2 0 [(1 1 1 )2 ]) <next level of matches> (1 0 2 0 [3 …

4
(有点)小学生生日悖论
背景 在生日悖论是概率论这颠覆流行的问题(大多数人)的数学直觉。问题陈述是: 给定N个人,他们中至少有两个生日相同(不考虑年份)的概率是多少? 通常通过完全忽略leap日来简化此问题。在这种情况下,N = 23的答案是P(23)≈0.5072972(作为常见示例)。链接的维基百科文章解释了如何得出这种可能性。另外,此Numberphile视频也做得很好。 但是,对于这个挑战,我们想做正确的事,不要忽略leap年。这有点复杂,因为现在需要添加2月29日,但是这个特定的生日比其他所有生日都少。 我们还将使用完整的leap年规则: 如果一年可被400整除,则表示a年。 否则,如果一年可被100整除,则不是a年。 否则,如果将一年除以4,则表示a年。 否则,这不是a年。 困惑?这意味着1700、1800、1900、2100、2200、2300年不是leap年,而是1600、2000、2400年(以及其他任何可以除以4的年份)。该日历每400年重复一次,我们将假设这400年中的生日统一分配。 现在N = 23的校正结果为P(23)≈0.5068761。 挑战 给定一个整数1 ≤ N < 100,请N考虑the年规则,确定至少两个人中有相同生日的概率。结果应该是浮点数或定点数,至少精确到小数点后6位。截断尾随零是可以接受的。 您可以编写程序或函数,通过STDIN(或最接近的替代方案),命令行自变量或函数自变量获取输入,并通过STDOUT(或最接近的替代方案),函数返回值或函数(out)参数输出结果。 您的解决方案必须能够在几秒钟内产生所有99个输入的输出。这主要是为了排除使用大量样本的蒙特卡洛方法,因此,如果您以过于缓慢的深奥语言使用主要是快速且精确的算法,那么我愿意在这条规则上留有余地。 测试用例 这是完整的结果表: 1 => 0.000000 2 => 0.002737 3 => 0.008195 4 => 0.016337 5 => 0.027104 6 => 0.040416 7 => 0.056171 8 => 0.074251 …

7
优化Scralphabet
cr 普通的Scrabble磁贴袋中包含以下字母(?是空白磁贴,可以代表任何其他字母): AAAAAAAAABBCCDDDDEEEEEEEEEEEEFFGGGHHIIIIIIIIIJKLLLLMMNNNNNNOOOOOOOOPPQRRRRRRSSSSTTTTTTUUUUVVWWXYYZ?? 字母具有以下值: {"A": 1,"B": 3,"C": 3,"D": 2,"E": 1,"F": 4,"G": 2,"H": 4,"I": 1,"J": 8,"K": 5,"L": 1,"M": 3,"N": 1,"O": 1,"P": 3,"Q": 10,"R": 1,"S": 1,"T": 1,"U": 1,"V": 4,"W": 4,"X": 8,"Y": 4,"Z": 10,"?": 0} 给定一个正常的拼字游戏包,请在以下条件下构造得分最高的一组不相交的单词(即单个单词,不在拼字板上): 每个字的分数是sum(letter_values) * length(word)。 您最多只能在一个字母的每个字母开头包含一个单词(因此,最多26个单词)。 仅可包含有效的拼字游戏单词(来自此词典)。您可以从文件中读取字典,对其进行硬编码(ugh)或从网站上将其刮取。 您无需使用每个图块,但所有未使用的图块都组成一个单词,以相同的方式评分,并从您的分数中扣除。 如果您愿意,您的代码可以接受两个输入:袋子内容为字符串,字母值采用类似于python的某种格式dict(如上所述);或者,您可以对包装袋中的物品和字母值进行硬编码。它应该以某种合理的格式输出您的单词集中的单词,它们各自的得分和您的总得分。 得分最高的单词组获胜,并列第一个。

3
将Stack Exchange问​​题标题分析成程序
Stack Exchange目前有134个问答站点。这包括所有Beta版网站(例如PPCG),但不包括Area 51提案,也没有任何meta网站(“ mother meta”除外)。 要回答这个问题,请选择其中一个站点并编写程序,其中每一行代码都是该站点上另一个问题的标题的类似字母。只要未删除该站点上的任何问题,并且该问题之前已被询问,则可以使用该问题。 问题的标题包括单击问题下方的链接时出现在文本框中的所有字符,包括空格,mathjax格式,疯狂的Unicode字符等。(如果要一次查询一堆问题,可以使用Stack Exchange API。)Titleedit 您编写的程序必须输出可靠地出现在每个Stack Exchange页面顶部的字符串: Questions Tags Users Badges Unanswered Ask Question 该确切的文本以及一个可选的结尾换行符是您的程序应该输出的唯一内容。没有输入。输出应该转到stdout,或者如果不可能的话,转到类似的替代方法。 由于仅用题名的字谜进行此操作可能会有些棘手,因此您可以选择在程序的每一行中的任何列中添加一个选择的字符。并非所有行都需要有一个额外的字符,并且行之间不必是相同的字符。字符可以是行终止符以外的任何东西。该行中的字符减去一个新字符仍应是问题标题的完美组合。 计分 你的分数是(number of lines with no added character) + 2 * (number of lines with an added character)。最低分获胜。如果是平局,则较早的答案为准。 细节 您必须提供指向使用标题的所有问题的链接。 您可以选择与其他人相同的Stack Exchange站点,尽管我们鼓励您选择未使用的站点(仅出于某种用途)。 如果您在选择获胜者之前删除了所使用的问题,则您提交的内容将无效,因此最好选择公认的问题。 如果在某些问题上对标题进行了编辑,则只要编辑历史记录显示您发布答案时标题是正确的,您的提交仍然有效。 程序中的注释很好。 根据您的需求编辑问题标题是非常糟糕的形式。

3
删除通畅的矩形
该图像是通过将7个不同颜色的矩形彼此叠加而制成的: 黑色和栗色矩形不受阻碍,也就是说,上方没有其他矩形。 编写一个程序,以获取诸如此类的图像并删除任何单个无障碍的矩形,然后输出结果图像。 例 如果您在上面的图像上运行程序,并在输出上重新运行它,则程序可能会像这样进行。 运行1-黑色被移除(可能是栗色的): 运行2-栗色已移除(唯一选择): 运行3-删除黄色(唯一选择): 运行4-已删除蓝色(本来可以是绿色): 运行5-移除绿色(唯一选择): 运行6-移除棕色(唯一选择): 运行7-移除红色(唯一选择): 任何其他运行都应产生相同的白色图像。 希望Stack Exchange不会无损地压缩任何这些图像。 图像将始终具有白色背景,并且每个矩形都是唯一的RGB颜色,而不是白色。 您可以假定图像始终可以解释为一组重叠的矩形。具体来说,您可以假定,对于特定颜色,该颜色最接近图像顶部的像素是该颜色矩形的上边缘的一部分。底部,左侧和右侧边缘也是如此。 因此,例如,在此图像中,红色矩形的顶部边缘将恰好在黄色矩形的底部边缘下方,因为橙色矩形覆盖了旧的红色顶部边缘: 在此图像中,可以先删除红色矩形(以及黑色/栗色/橙色/灰色): 当下部矩形的顺序不明确时,可以给它们任何顺序。 例如,此处的左侧图像可能变为中间或右侧: 输出不应有矛盾的重叠(因此应该可以使用画家的算法来实现)。因此,在此图像中(感谢user23013),它必须在橙色矩形下为绿色: 额外细节 图像和矩形可以具有任何尺寸。 矩形可能会触及图像边框。 最多可能有256 3-1 个矩形。 如果输入是全白的,则输出也应该是白色。 您可以使用图像库。 输入应该是图像文件名或原始图像数据。它可以来自stdin或命令行。 可以将输出写入相同或另一个图像文件,将原始图像输出到stdout,或简单地显示。 允许使用任何常见的无损Truecolor图像文件格式。 字节最少的提交将获胜。

7
我的世界胸部放置
电子游戏Minecraft就是要在构成虚拟世界的3D 整数格子中放置和移除不同类型的块。每个晶格点可以仅包含一个块,也可以为空(正式为“ air ”块)。在此挑战中,我们将只关注3D世界的一个水平2D平面和一种块:宝箱。 箱子让玩家存放物品。当两个箱子在同一水平面内正交相邻时,它们的纹理会链接在一起,形成容量为两倍的双箱子。没有比双胸大的东西了。没有三联箱,也没有四联箱。 仅当胸块的四个正交相邻点都为空时,或者如果正好包含一个尚未属于双胸的一部分的胸块时,才可以将其放置在空的网格点中。这些放置规则确保了哪个胸块链接在一起形成双胸永远不会有任何歧义。 例如,假设.是一个空白空间并且C是一个箱子:(数字也是空白空间,仅用于标识目的。) .......C.. .1.C2.C3.. ........5C .CC4..CC.. .......... 箱子可以放置在位置1,因为它的4个邻居是空的。 可以将胸部放置在位置2中,因为相邻的胸部还不是双胸部的一部分。 不能将箱子放在位置3,因为双箱子的形成方式会含糊不清。 无法将箱子放在位置4,因为相邻的箱子已经是双箱子的一部分。 可以在位置5放置一个箱子。对角相邻的双箱子不会影响任何东西。 假设超出网格的区域是空的,.则将网格中的每个区域更改为一个*是否可以在其中放置箱子的结果: ******.C** ***C**C.** *..***..*C .CC.*.CC.* *..***..** 当然,并不是所有的*空间都可以同时被箱子占用,但是如果您只有一个箱子,则可以将其放置在任何一个箱子中。 挑战 编写一个程序和函数,该程序或函数接受.和C网格,如果可以在其中放置一个箱子,则将其全部更改.为a *,以打印或返回结果网格。 输入可以来自stdin或文件,也可以来自函数的字符串参数。 您可以假设输入格式正确-即一个完美的矩形文本网格,至少包含1个字符的宽度和高度,仅包含.和。C您可以选择假设最后一行之后有换行符(并且输出中可能有一个换行符) )。 您可以假设输入中的箱子排列与上述规则一致。关于哪个箱子形成双箱子永远不会有任何歧义。 如果需要,你可以使用任何三个不同的打印的ASCII到位的人物.,C和*。您不能使用其他方式代替换行符。 所有的箱子都是正常的箱子。没有被困的箱子或下者的箱子。 计分 字节最少的提交将获胜。 对于与Minecraft相关的挑战,它更具挑战性,请尝试Nether Portal Detection。
20 code-golf 

8
Code Golf图像下载器
在许多图像处理挑战中,帖子中包含图像,必须将其保存到文件中才能处理问题。这是一个特别繁琐的手动任务。我们程序员不必受累。您的任务是自动下载Code Golf.SE问题中包含的所有图像。 规则 您的程序可能会连接到的任何部分stackexchange.com,但可能不会连接到任何其他域,但图像的位置除外(即,不必使用URL缩短器)。 在命令行或stdin上输入整数N作为输入。 该URL 保证是指向Code Golf问题的有效链接。http://codegolf.stackexchange.com/questions/N 问题N正文中显示的每个图像都必须保存到本地计算机上的文件中。可以使用以下任一位置: 当前目录 用户输入的目录 您的程序不得在问题正文中保存图像以外的文件(例如,用户头像或答案中包含的图像)。 图像必须以与原始文件相同的文件扩展名保存。 这是一个代码问题 -编写尽可能短的程序。 答案的有效性标准 存在多种可能的边缘情况,其中包含多个具有相同名称的图像,与HTML元素具有相同名称的文本等。仅当在2015年1月10日之前发布的某个问题的某个修订版本上显示该答案失败时,答案才会失效。

5
用二次收敛计算π
编写一个函数或完整的程序,该程序需要一个正数n并执行n迭代算法的步骤,以计算具有二次收敛性的π(即,每次迭代将其精确数字的数量大约加倍),然后返回或打印2 n个正确的数字(包括开始3)。Gauss-Legendre算法就是这样一种算法,但是如果您愿意,可以自由使用其他算法。 例子: 输入1→输出3.1 输入2→输出3.141 输入5→输出3.1415926535897932384626433832795 要求: 该算法的每次迭代都必须执行恒定数量的基本运算,例如加,减,乘,除,乘方和根(具有整数指数/度)-对“大”整数/十进制数的每个此类运算都被计为偶数如果它在内部涉及一个或多个循环。需要明确的是,涉及复数的三角函数和幂不是基本运算。 期望该算法具有初始化步骤,该初始化步骤还必须具有恒定数量的操作。 如果算法需要再进行1或2次迭代才能获得2 n个正确的数字,则您最多可以执行n+2迭代,而不仅仅是执行n。 如果还不够清晰,请在正确的2 n位数字之后,程序不得再打印其他任何内容(例如,更正确的数字,错误的数字或莎士比亚的完整著作)。 您的程序必须支持n从1到至少20的值。 n在现代计算机上,= 20的程序花费的时间不应超过一个小时(这不是硬性规定,但是请尽量使其合理)。 在算法的初始化和第一次迭代之后,程序不得获得超过20个准确的数字。 该程序必须可使用免费软件在Linux中运行。 源代码只能使用ASCII字符。 得分: 简单明了的代码高尔夫,最短的代码获胜。 优胜者: 赢家是Digital Trauma,我终于在n = 20上完成了他的代码(只是在开玩笑)。Primo因其非常快速的python解决方案和不同的算法而获得了特别奖:)
20 code-golf  pi 

5
运行时返回最接近当前时间的时钟表情符号
if/else每30分钟我可能会有一个很大的状况,但我正在寻找更多基于数学和Unicode的解决方案。 这是时钟表情符号:🕐🕑🕒🕓🕔🕕🕖🕗🕘🕙🕚🕛🕜🕝🕞🕟🕠🕡🕢🕣🕤🕥🕦🕧。如果您缺少适当的渲染支持,则可以在下面(它们的顺序不相同,它们看上去可能与您看到的不同)或在Unicode图表第4页上看到它们。它们对应于Unicode代码点U + 1F550(时钟) FACE ONE OCLOCK)(FACE ONE OCLOCK)至U + 1F567(CLOCK FACE TWELVE-THIRTY)。 您面临的挑战是编写一个程序,将与当前系统时间最接近的钟面表情符号输出到STDOUT(应该将AM和PM视为相同)。例如,如果时间t为[5:15 <t <5:45),则将显示5:30表情符号🕠。 这是代码高尔夫球,因此以字节为单位的最短代码获胜。您可能想要包括一种轻松指定测试代码时间的方法。 边缘测试用例 Time Output Written ---------------------- 11:48 🕛 12:00 3:15 🕞 3:30 9:45 🕙 10:00
20 code-golf  date 

2
用一连串的棒形成多米诺骨牌
背景 考虑一个(闭合的)杆链,每个杆的长度都是整数。有多少不同的无孔四角系统,你可以在给定链形成的?或者换句话说,对于给定的链,可以形成多少个与轴对齐的边的非自相交多边形? 让我们看一个例子。考虑由8条长度为1和2的杆组成的特定链,我们可以将其表示为[1, 1, 2, 2, 1, 1, 2, 2]。直到旋转和平移,只有8种可能的多米诺骨牌(我们会计算不同的反射): 第一个杆是深蓝色,然后我们以逆时针方向遍历多边形。 旋转感不影响上面示例中的结果。但是,让我们考虑另一条链,[3, 1, 1, 1, 2, 1, 1]它产生以下3个多氨基酸: 注意,我们不包括最后一个多米诺骨牌的反射,因为它需要顺时针遍历。 如果我们有一条相同长度的更灵活的链[1, 1, 1, 1, 1, 1, 1, 1, 1, 1],我们实际上将能够在其他一些多音色之间形成两种反射,总计为9: 挑战 给定链条的描述(以阵列或类似形式),可以按顺序确定杆(在旋转和平移的情况下)可以形成的不同多义氨基酸的数量,同时按逆时针方向绕周长。 请编写完整的程序,并包含用于编译的命令(如果适用),并从命令行运行代码。另请提供指向您所用语言的免费编译器/解释器的链接。 您的程序应从STDIN读取输入。第一行将包含的整数中号。接下来的M行将是测试用例,每个用例将是一个用空格分隔的杆长度列表。您的程序应将M行打印到STDOUT,每行由一个整数组成-可以形成的不同多氨基酸的数量。 您只能使用一个线程。 您的程序在任何时候都不得使用超过1 GB的内存。(这不是一个完全严格的限制,但是我将监视可执行文件的内存使用情况,并杀死任何持续使用超过1 GB或峰值明显超过此1GB的进程。) 为防止过多的预计算,您的代码不得超过20,000字节,并且不得读取任何文件。 您也不能针对所选的特定测试用例进行优化(例如,通过对结果进行硬编码)。如果我怀疑您这样做,我保留生成新基准集的权利。测试集是随机的,因此您的程序在这些测试集上的性能应代表其在任意输入下的性能。您唯一可以做的假设是杆长度的总和是偶数。 计分 我为N = 10、11,...,20根杆的链条提供了基准套件。每个测试集包含50条随机链,长度在1-4之间(含1和4)。 您的主要分数是程序在5分钟内(在我的计算机上,Windows 8下)完成完整测试集的最大N分。决胜局将是程序在该测试集上花费的实际时间。 如果有人击败最大的测试仪,我将继续增加更大的测试仪。 测试用例 您可以使用以下测试用例来检查实现的正确性。 Input Output …

8
将数字转换为二进制…但是也可以使用二进制
根据此数字亲密视频中提到的“二进制但带二进制”表示法,编写一个函数,该函数将单个数字作为输入并在允许二进制的“二进制”系统中输出该数字的所有变体。 规则 代码只能是函数/方法,不能是完整程序 输入是作为唯一参数传递给函数的整数 输出是输入数字的所有有效变体,转换为“二进制但带二进制”表示法 输出是函数的返回值,但可以使用任何方便的格式,只要它很明显即可(例如3个整数,3个字符串,逗号/空格分隔的字符串,整数数组等),顺序不重要 万一一种语言碰巧包含一个内置函数来实现结果,这种情况不太可能发生,这是不允许的 以字节为单位的最短代码是赢家 输出说明 例如,如果传递了数字9,则可以将其转换为1001,将其转换为二进制,但如果2在每个位置都允许s,则也可以将其写为201(ie 2*4 + 0*2 + 1*1)或121(ie 1*4 + 2*2 + 1*1),如下表所示: +----+----+----+----+ | 8s | 4s | 2s | 1s | +----+----+----+----+ | 1 | 0 | 0 | 1 | | 0 | 2 | 0 | 1 | | …

7
混淆达科他州[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使其成为话题成为Code Golf Stack Exchange。 2年前关闭。 您已被北达科他州政府雇用来加密该州的通讯。编写两个程序,一个用于加密消息,另一个用于解密该消息。 政府并不真正精通技术,因此加密算法不需要复杂。只需确保结果乍一看看上去与原始图像不相似。 但是,您暗中忠于南达科丹州政府。您的工作是将通信混在一起,以便每次提及North Dakota都South Dakota在解密时进行,反之亦然。这也适用于North/South Dakotan和North/South Dakotans。 例如: 北达科他州是北美最富有的县,而南达科他州比南佛罗里达州更贫穷。-北达科丹州政府 将经过加密然后解密,结果是: 南达科他州是北美最富有的县,而北达科他州比南佛罗里达州更贫穷。-南达科丹州政府 以最秘密,最棘手的方式完成此任务的算法(如投票最多)将被接受。

1
在有限域或整数上分解多项式
在不使用任何内置分解因数/多项式函数的情况下,将多项式完全分解为整数或有限域的不可约式。 输入值 您的程序/函数将收到一些质数(或零)n作为输入。场/环是顺序(即的有限域Z/nZ),或者只是Z如果n是0。如果n不是0或素数,则您的程序可能会失败。多项式将在中F[x]。 您的程序/函数还将接收多项式作为输入。 输入有一些灵活性,请确保指定打算接收输入的方式。例如,可以将多项式作为系数列表输入,或者以大多数人期望的形式(例如:)50x^3 + x^2或其他一些合理的形式输入。或者输入场/环的格式也可以不同。 输出量 您的程序/函数将完全输出因式分解的多项式。您可以扩展多个根(即(x + 1)(x + 1)代替(x + 1)^2)。您可以删除二进制运算符之间的空格。您可以将并置替换为*。您可以在奇怪的地方插入空格。您可以将因子重新排序为所需的任何顺序。这个x词可能只是(x)。x可以写成x^1; 然而,常数项可能不会有x^0。+允许有多余的迹象。您可能没有一个0前置词,必须将其排除在外。每个因素的前置项必须为正,负号必须在外部。 测试用例,您的程序应该能够在合理的时间(例如,<= 2小时)内为每一个产生输出: 输入: 2, x^3 + x^2 + x + 1 输出: (x + 1)^3 输入: 0, x^3 + x^2 + x + 1 输出: (x + 1)(x^2 + 1) 输入: 0, 6x^4 – …

1
检测重复的问题
检测重复的问题 从前,有一个高尔夫球场。它有一个问题:人们会一次又一次发布相似或相同的问题。你去过选择选定强迫征兵勒索 要求以任何必要的方式使确定问题是否与现有问题重复的过程自动化(请参阅规则)。 输入值 您的程序必须接受一个URL作为输入。可以假设这导致在codegolf.stackexchange.com上出现问题。 输出量 在网站上搜索类似的问题。如果您认为输入的问题是现有问题的重复(反之亦然),请输出另一个问题的URL。您可以输出多个URL,以新行分隔。在输出末尾,输出end(在单独的行上)。 计分 如果您输出的问题确实被标记为输入问题的重复(反之亦然),则您得分为4分。这是一个“正确的猜测”。 对于每个误报(又称“错误猜测”),您将损失2分。 对于实际上是重复的但未出现在输出中的每个问题(又称“遗漏猜测”),损失1分。 处理32个输入问题后得分最高。这32个问题是一个“回合”。在每个回合开始时,得分将重置为0。每隔几天将进行一次回合,并且每个回合后都会更新排行榜。 规则 如果问题A和C都作为B的重复被关闭,则A将被视为C的重复,反之亦然。 在每个回合开始时,您的程序可能没有任何有关任何问题的数据(即没有硬编码),但如何解析网站除外。 但是,您可能在一轮中将数据保留在外部文件中。 两轮之间不得保留任何数据。 您的输出必须有尾随换行符。 除搜索结果以及问题的URL,标题,标签和文本(带有或不带有格式)外,您不得使用网站上的任何数据。例如,您不能使用出现在重复问题上的文本“被foo,bar ...标记为重复”。 您可以通过data.SE或API直接从站点检索此数据。 每个提交都必须有一个名称。 每个提交必须具有清晰的版本编号。 如果提交的内容在一定时限(有待确定;请说明提交的时间)后仍未产生输出,它将被杀死并失去8分。

4
致命错误挑战
目的 编写一个例程,该例程接受可打印的ASCII字符s字符串,并返回包含与s相同字符的字符串,并重新排序,以使两个字符的子字符串不会出现多次。该程序必须在一台现代计算机上在不到一分钟的时间内处理所有基准字符串(见下文)。我还将向得分最低的答案(在不到一分钟的时间内处理任何有效的30个字符的字符串)颁发50 rep的特别奖励。 例如,给定input Mississippi,有效输出将是issiMspiips(两个字符的子字符串不会出现两次),而无效输出将是ipMsispiiss(因为子字符串is出现两次)。 该例程可以采用以下形式: 从stdin(或等效项)或命令行读取完整的程序,并输出至stdout(或等效项) 接受单个字符串参数并返回字符串的函数 您可以假设输入字符串始终允许至少一个有效输出。 挑战 您的例程必须包含5行或更多行的代码,并用换行符分隔。空行(包括仅包含空格的行)在所有上下文中都将被忽略,并且不会计入总行数。 在源代码中交换任何两行都必须产生致命错误。所谓“致命错误”,是指以下任何一种情况: 源代码无法编译,编译器/解释器声明了致命错误 例程因运行时致命错误或未处理的运行时异常而中止 例程被迫突然终止,异常程序终止,除了可能的错误消息和/或堆栈转储之外,不产生任何形式的输出 或者,可以使用不包含换行符的连续代码块代替行。这些块应分别在源文件中的各自行上显示,并应理解在编译/解释源代码之前应删除换行符。 例如,代码 aaaa bbbb cccc 会凝结为 aaaabbbbcccc 在评估之前。 在这种模式下,致命错误条件适用于交换任何两个代码块(因此适用于交换源代码中的行,然后再去除换行符)。因此,在上面的示例中,例程aaaaccccbbbb,bbbbaaaacccc和ccccbbbbaaaa必须在编译时或运行时都产生致命错误。 使用此替代模式的提交应声明其使用。 计分 让Ñ是在源文件中的非空的文本行的个数,与Ñ ≥5令Ç是由所包含的字节数最长的TextLine在源文件(由字节长度)不计算任何尾随换行符。 提交的分数由c(n + 10)给出。 得分最低的提交者为获胜者。 祝你好运。;) 基准字符串 Abracadabra Alacazam Is Miss. Mississauga Missing? Ask Alaska's Alaskans GGGGAAAATTTTCCCCgggaaatttccc A Man A Plan A Canal …

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.