Questions tagged «code-golf»

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

30
子串链化
介绍 在此示例中,让我们使用字符串Hello, World!和数组[3, 2, 3]。为了找到子字符串链,我们经历以下过程: 数组的第一个数字是3,所以我们得到的字符串[0 - 3],这是Hel。之后,我们3从初始字符串中删除了前几个字符,从而使我们有了lo, World!。 数组的第二个数字是2,因此我们[0 - 2]从新字符串中获得子字符串,从而得到lo。剩余的字符串变为, World!。 最后一个数字是a 3,它给我们, W。该子串链是所有子组合,这给我们的: ['Hel', 'lo', ', W'] 对于更直观的示例: [3, 2, 3], 'Hello, World!' 3 -> Hel 2 -> lo 3 -> , W 任务 给定一个非空字符串和一个仅由正整数(> 0)组成的非空数组,输出子字符串chain。您可以假定数组中所有整数的总和不超过字符串的长度。 您还可以假定字符串永远不会包含任何换行符。 测试用例 Input: abcdefghijk, [2, 1, 3] Output: ['ab', 'c', 'def'] …
27 code-golf  string 

22
通过重复减去最大的质数,可以使数字达到1吗?
挑战: 给定一个数字,取严格小于该数字的最大质数,从该数字中减去它,再对该最大质数小于该数的新数字进行此操作,然后继续执行直到小于3。如果达到1,则表示程序应输出真实值,否则,程序应输出错误值。 例子: 所有这些都应该提供真实的价值: 3 4 6 8 10 11 12 14 16 17 18 20 22 23 24 26 27 29 30 32 34 35 37 38 40 41 42 44 46 47 48 50 所有这些都应提供假值: 5 7 9 13 15 19 21 25 28 31 33 36 39 …

9
解码Microsoft MS-DOS 5.0 FAT目录项
Microsoft FAT文件系统具有一个目录表,用于表示磁盘上哪些“文件”位于哪个“文件夹”中。暂时,这些条目将大量信息塞满了少量比特。出于好奇,Wiki上有很多技术规范,但是这里的挑战将集中在条目的“简单”解码上。 每个条目由一个32字节的二进制字组成,分为几个部分。为了在此挑战中保持一致,我们将使用MS-DOS 5.0版本,字节顺序为big endian,并且将byte 0x00称为最左边,将byte 0x1F称为最右边。 以下是相关部分的简要示意图,以及每个部分的输出(以粗体显示)。 前11个字节是ASCII格式的文件名(这是著名的8.3文件名的来源-文件名8个字节,扩展名3个字节)。这些是直接的ASCII编码,应以ASCII(。)之间的形式输出。 注意:第8部分和第3部分都用空格填充,以进行全长输入。输出应忽略空格(即,不输出空格)。 文件扩展名可能为空(即所有空格),在这种情况下,输出不应输出点。 由于ASCII仅使用低7位,因此所有字节均具有前导0。 下一个字节(0x0b)是以下内容的位掩码: 0x01只读-输出RO 0x02隐藏-输出H 0x04系统-输出S 0x08音量标签输出VL。文件大小(以下)应输出为0,无论其实际输入如何。 0x10子目录-输出SD。文件大小(以下)应输出为0,无论其实际输入如何。 0x20存档-输出A 0x40设备-此挑战被忽略。 0x80保留-对于此挑战被忽略。 由于这是位掩码,因此可能有多个标志-所有适用的输出应以任意顺序串联在一起。例如,0xff可以是ROHSVLSDA(或任何其他组合)。 在MS-DOS 5.0下不使用接下来的两个字节(0x0c和0x0d)。 接下来的两个字节(0x0e和0x0f)是创建时间,如下所示: 位15到11是24小时格式的小时-输出00到23 位10到5是分钟-输出00到59 位4到0是秒数/ 2-输出00到58(请注意,秒仅是两秒的分辨率) 为了澄清:hhhhhmmmmmmsssss写大端时。 接下来的两个字节(0x10和0x11)是创建日期,如下所示: 位15至9年-输出1980年的0高达2107对127 位8到5是月份-输出1到12(带或不带前导零) 位4至0是日期-输出0至31(带或不带前导零) 为了澄清:yyyyyyymmmmddddd写大端时。 接下来的两个字节(0x12和0x13)是最后访问日期。在MS-DOS 5.0中使用时,我们将忽略此部分的挑战。 MS-DOS 5.0不使用接下来的两个字节(0x14和0x15)。 接下来的两个字节(0x16和0x17)是最后修改的时间,遵循与上面创建时间相同的格式。 接下来的两个字节(0x18和0x19)是最后修改日期,其格式与上面的创建日期相同。 接下来的两个字节(0x1a和0x1b)是文件在磁盘上的群集位置。对于这一挑战,我们将忽略这一部分。 最后四个字节(0x1c,0x1d,0x1e和0x1f)是文件大小-输出为 无符号整数,除非设置了VL或SD标志(在上面),否则输出0。 视觉表现 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 \______________________________FILENAME________________________________________________/\_ATTR_/\___NOTUSED____/\_CREATIONTIME_/\_CREATIONDATE_/\__LASTACCESS__/\___NOTUSED____/\_MODIFIEDTIME_/\_MODIFIEDDATE_/\___NOTUSED____/\___________FILESIZE___________/ 输入项 单个32字节字(即256位),采用任何方便的格式。 这可能是作为一个串1并0作为几个无符号intS,布尔值的阵列等 …

26
制作一个(有点)自引用字符串
您想创建一个字符串,其中index 处的(1-indexed)字符n为n。当n小于10,这是很容易:"123456789"。n例如,当值为12时,它变得不可能,因为大于9的数字(以10为底)占用一个以上的字符。我们可以通过将字符串转换成两个字符子妥协:"020406081012"。现在,每个子字符串 结尾的索引n为n。 可以将其概括为任何d数字。这是三位数字字符串的“ 0991021”部分的说明: Index: ... * 97 98 99*100 101 102*103 ... * * * *---+---+---*---+---+---*---+ Character: ... * 0 | 9 | 9 * 1 | 0 | 2 * 1 | ... *---+---+---*---+---+---*---+ 如果还没有弄清楚,您将编写一个程序/函数,该程序/函数接受一个字符串或整数,并输出其自指字符串,如上所述。您还可以输出一个由一位数字,字符或单字符字符串组成的数组。 给定的整数将始终为正,并且可以按长度进行整除(例如126被3整除; 4928被4整除)。理论上,您的程序应该可以为任意大的输入工作,但是您可以假定它小于语言的最大整数和/或字符串长度。 如果您仍然没有得到一些观察结果:输出的长度将始终是输入本身,并且输出中出现的数字将被输入中的位数所除。 这是代码高尔夫球,因此最短答案以字节为单位。 测试用例 1 => 1 9 => 123456789 10 …

22
计算A190810
您的任务非常简单,计算A190810的第n个元素。 A190810的元素是根据以下规则计算的: 第一个元素是1 顺序在增加 如果x发生的顺序,然后2x+1和3x-1还做 您可以使用基于1的索引或基于0的索引,但是如果您使用基于0的索引,请在回答中说明。 测试用例 a(1) = 1 a(2) = 2 a(3) = 3 a(4) = 5 a(5) = 7 a(10) = 17 a(20) = 50 a(30) = 95 a(55) = 255 由于这是代码高尔夫球,因此以字节为单位的最短答案会获胜!

15
删除重复和已切换的案例
目标 挑战的目的是:给定一个字符串作为输入,如果该对中的第二个字母大写相反,则删除重复的字母对。(即大写变成小写,反之亦然)。 线对应该从左到右更换。例如,aAa应该成为aa和不aA。 输入和输出: Input: Output: bBaAdD bad NniIcCeE Nice Tt eE Ss tT T e S t sS Ee tT s E t 1!1!1sStT! 1!1!1st! nN00bB n00b (eE.gG.) (e.g.) Hh3lL|@! H3l|@! Aaa Aa aaaaa aaaaa aaAaa aaaa 输入由可打印的ASCII符号组成。 您不应该删除重复的数字或其他非字母字符。 致谢 这个挑战与@nicael的“复制和切换案例”相反。你可以逆转吗? 感谢您对沙盒的所有贡献! 目录 这篇文章底部的Stack Snippet从答案a)生成目录,答案是每种语言的最短解决方案列表,b)则是总体排行榜。 为确保您的答案显示出来,请使用以下Markdown模板以标题开头。 ## Language Name, …
27 code-golf  string 

4
重力家伙能做到吗?
Gravity Guy是一款游戏,其中唯一的用户输入就是一个可以翻转重力方向的按键。给定ASCII艺术水平,确定Gravity Guy是否有可能达到终点。 规则 重力的初始方向朝下。 输入的第一列将始终仅包含一个 #,其中Gravity Guy 从顶部开始。 每次迭代,他都直接移到他右边的角色。 如果他的路径被挡住并进入a #,玩家输了。 移动后,玩家可以选择将重力从向下切换到向上,或从向上切换到向下。 然后,“重力家伙” 跌落到下一个#(在当前重力方向上)。 如果没有#落脚的机会并且他从网格上摔下来,玩家输了。 如果Gravity Guy 从输入网格的右侧移开,则玩家将获胜。 例 如果这是输入网格: ### # # # ### x每次迭代后,Gravity Guy将从这些位置开始于and be。^=将重力调高,并v=将重力调低。 v ^ v ------------------------------------------------------------- ### | ### | ### | ### | ### | ### x | | x | x …

30
减去下一个数字
描述 从N数中减去下一个P数。N的下一个数字是N + 1。 查看示例以了解我的意思。 例子: Input: N=2,P=3 Calculate: n - (n+1) - (n+2) - (n+3) //Ending with 3, because P=3 Calculate: 2 - 2+1 - 2+2 - 2+3 //Replacing N with 2 from Input Calculate: 2 - 3 - 4 - 5 Output: -10 Input: N=100,P=5 Calculate: n - …

3
清洁浑浊的四方鱼
这项挑战是为了纪念2015年最佳PPCG的“年度最佳新秀” :泥泞鱼(因为我不是您要寻找的语言!)和夸脱塔(实现“真机”)。恭喜你! 背景 在海洋最深的海沟中,生活着一种稀有且难以捉摸的方形鱼,称为四方鱼。它看起来像来自“生命游戏”细胞自动机的滑翔机。这是两种大小不同的四方鱼类: -o- --o ooo --oo-- --oo-- ----oo ----oo oooooo oooooo 您已经成功拍摄了四方鱼的照片,但是鱼很难被看见,因为它被泥覆盖了。现在,您必须编写一个程序来清理照片。 输入项 您的输入是字符的矩形2D网格,.-o#以换行符分隔的字符串形式给出。如果需要,可以使用管道|而不是换行符作为分隔符,并且可以假定使用一个尾随和/或前一个分隔符。 输入将仅包含一个边长为的四分之一鱼类3*n,其中n ≥ 1为正整数,并用.代表海底的时期包围。鱼将始终处于上述方向。在此网格上,将恰好有一个非空的哈希矩形区域#,代表一团泥土。斑点可能会部分或全部覆盖夸脱鱼类。输入示例 ............ ..--oo--.... ..--oo--.... ..---#####.. ..---#####.. ..ooo#####.. ..oooooo.... 输出量 您的输出应通过用字符替换所有哈希值来从输入中生成.-o,以便网格仅包含一个quartata-fish。总会有一种独特的方法来正确执行此替换;特别是,只有当大小为3×3时,泥块才会完全覆盖鱼。输出应使用与输入相同的分隔符。对于上述输入,正确的输出将是 ............ ..--oo--.... ..--oo--.... ..----oo.... ..----oo.... ..oooooo.... ..oooooo.... 规则和计分 您可以编写完整的程序或函数。最低字节数获胜,并且不允许出现标准漏洞。没有时间限制:如果在无限的时间和资源下您的提交最终将停止,那么您就可以了。 测试用例 Input: ....... ...-o-. ...--o. ##.ooo. ##..... Output: ....... ...-o-. ...--o. ...ooo. ....... …

5
旋转超立方体
介绍 超立方体/梯形函数是普通立方体的4维等效项。它是通过以下方法制成的:使用立方体网,将其扩展到第3维,然后使用第4维将其折叠成超立方体。基本上是一个立方体,每边都是一个立方体。 要创建超立方体,您需要16个4d向量(一个具有an x,a y,a z和一个w分量的向量)。这些向量如下: A(0, 0, 0, 0); B(1, 0, 0, 0); C(1, 0, 1, 0); D(0, 0, 1, 0); E(0, 1, 0, 0); F(1, 1, 0, 0); G(1, 1, 1, 0); H(0, 1, 1, 0); I(0, 0, 0, 1); J(1, 0, 0, 1); K(1, 0, 1, 1); …

30
无效的Invali无效
这个想法大致基于@TùxCräftîñg的聊天消息。 看一下下面的示例序列: INVALID0,INVALID1,INVALID2 INVALID3,INVALID4...INVALID9 之后INVALID9,它像这样继续: INVALI0,INVALI1,INVALI2,INVALI3...INVALI9 之后INVALI9,是这样的: INVAL0,INVAL1,INVAL2,INVAL3...INVAL9 之后,INVAL9是这样的: INVA0,INVA1,INVA2,INVA3,...INVA9 注意我们如何INVALID每次都从单词中删除字母。 您将不断重复此操作,直到到达单个字母,即字母I: I0,I1,I2,I3,I4...I9 现在,您的任务是,像上例一样,输入一个单词,并从中产生一个序列。您的代码还必须使用单个字母,在这种情况下,结果序列将更短。 您可以选择自己喜欢的任何输入和输出格式(根据需要选择带或不带分隔符),但是必须指定选择的格式。 顺序必须严格按照指定的顺序进行。 成功完成此挑战的最短代码(以字节为单位)将赢得挑战。 上例中的完整序列: INVALID0, INVALID1, INVALID2, INVALID3, INVALID4, INVALID5, INVALID6, INVALID7, INVALID8, INVALID9, INVALI0, INVALI1, INVALI2, INVALI3, INVALI4, INVALI5, INVALI6, INVALI7, INVALI8, INVALI9, INVAL0, INVAL1, INVAL2, INVAL3, INVAL4, INVAL5, INVAL6, INVAL7, INVAL8, INVAL9, INVA0, INVA1, …

3
伏特,安培,瓦特和欧姆:给定两个,计算另外两个
欧姆定律告诉我们,当在两端施加电压(V)时,流经以欧姆为单位的电阻(R)的电流(I)如下: V = I / R 类似地,该电阻耗散的功率(P)以瓦特为单位: P = V * I 通过重新排列和替换,当给出其他两个中的任何一个时,可以推导用于计算这些中的两个的公式。这些公式总结如下(请注意,此图像使用的E不是V伏特): 给定一个字符串中任意两个数量的输入,输出其他两个。 输入数字将是十进制的形式,适合您的语言。精度应至少为小数点后三位。(IEEE 754-2008 binary32浮点数就足够了。) 每个输入数字都将带有一个单位后缀。这将是V A W R电压,电流,功率和电阻(或等效的小写字母)之一。此外,您可以使用Ω代替R。单位将没有任何十进制前缀(千位,千位等)。 两个输入量将以任何顺序以字符串形式给出,并用单个空格分隔。 输入数量始终是大于0的实数。 输出将具有与输入相同的格式。 不允许使用方程式求解的内建函数。 输入示例 1W 1A 12V 120R 10A 10V 8R 1800W 230V 13A 1.1W 2.333V 对应的输出 1V 1R 0.1A 1.2W 1R 100W 120V 15A 2990W 17.692R 0.471A …

18
旋转对称数
给定一个整数,如果它是相同的上下颠倒(旋转180°),则输出真实值,否则输出虚假值。 0,1并且8具有旋转对称性。6成为9,反之亦然。 产生真实结果的数字序列:OEIS A000787 0, 1, 8, 11, 69, 88, 96, 101, 111, 181, 609, 619, 689, 808, 818, 888, 906, 916, 986, 1001, 1111, 1691, 1881, 1961, 6009, 6119, 6699, 6889, 6969, 8008, 8118, 8698, 8888, 8968, 9006, 9116, 9696, 9886, 9966, 10001, 10101, 10801, 11011, 11111, 11811, 16091, …
27 code-golf  number  sequence  decision-problem  code-golf  string  parsing  c  code-golf  sorting  integer  code-golf  number  sequence  rational-numbers  graphical-output  atomic-code-golf  assembly  box-256  code-golf  geometry  tips  python  code-golf  number  sequence  arithmetic  number-theory  code-golf  ascii-art  kolmogorov-complexity  geometry  code-golf  graphical-output  code-golf  math  code-golf  grid  cellular-automata  game-of-life  code-golf  string  subsequence  code-golf  arithmetic  rational-numbers  code-golf  tips  dc  code-golf  ascii-art  kolmogorov-complexity  date  code-golf  string  primes  code-golf  string  natural-language  conversion  code-golf  sequence  code-golf  number-theory  primes  base-conversion  code-golf  math  primes  base-conversion  code-golf  ascii-art  fractal  code-golf  matrix  code-golf  math  tips  geometry  python  string  code-challenge  keyboard  code-golf  graphical-output  code-golf  string  code-golf  number  sequence  cops-and-robbers  number  sequence  cops-and-robbers 

30
编写一个程序来反转其源文件的名称
在一个文件中,编写不需要输入且不会产生输出的程序。运行时,无论名称是什么,它都应该反转其中包含的文件的名称,而无需更改代码或不会产生其他持久的副作用。 任何实现此目的的方法都可以。唯一重要的是,一旦程序运行,唯一的持久更改就是其文件名已被颠倒。例如,目录中不应有新文件。 再次运行该程序应将名称反向。实际上,该程序应该能够任意运行多次。 就此挑战而言: 您可能会假设文件名始终是长度在1到127个字符之间的小写字母(az)字符串。(如果您的语言要求文件具有扩展名才能运行,则只需反转扩展名之前的部分即可,例如mycode.bat→ edocym.bat。) 您可能会认为代码文件本身位于目录中,因此它不会有命名冲突(除了自身)。 您可能不会假定文件名不是回文,即取反后的名称相同。回文的文件名应该和不一样的文件名一起工作。 您可以阅读文件的内容或元数据。此处没有藜麦限制。 您可能会假设您的程序将在特定的,现代的,常见的操作系统(例如Windows / Linux)上运行,因为并非所有外壳程序都具有相同的命令集。 举一个具体的例子,假设您有一个Python程序mycode位于其自己目录中的文件 中。跑步 python mycode 在终端中应导致文件名被反转为 edocym。该文件edocym应仅位于其目录中-不再mycode存在任何命名的文件。跑步 python edocym 会将名称改回mycode,此时可以无限期重复此过程。 如果相同的Python文件已重命名racecar(不更改代码),然后运行 python racecar 由于“赛车”是回文,因此没有任何明显的变化。如果文件名是a或,也是如此xx。 以字节为单位的最短代码获胜。决胜局是最高投票的答案。

10
解析四元数
如果您还不知道,则四元数基本上是4位数的数字。出于这一挑战的目的,它具有一个实部和三个虚部。虚数分量是由后缀表示i,j,k。例如,1-2i+3j-4k是用四元数1为实分量和-2,3和-4作为虚数分量。 在此挑战中,您必须将四元数的字符串形式(例如"1+2i-3j-4k")解析为系数(例如[1 2 -3 -4])的列表/数组。但是,四元数字符串可以用多种不同的格式进行格式化... 这可能是正常的: 1+2i-3j-4k 它可能缺少术语:1-3k,2i-4k(如果缺少术语,则输出0这些术语) 它可能已丢失的系数:i+j-k(在此情况下,这相当于1i+1j-1k换句话说,一个。i,j,或k不被假定在前面的数以具有1在由缺省前) 它的顺序可能不正确: 2i-1+3k-4j 系数可以只是整数或小数: 7-2.4i+3.75j-4.0k 解析时有一些注意事项: 条款之间总会有a +或- 您将始终获得有效的输入信息,该输入内容至少包含1个字词,并且没有重复的字母(no j-js) 所有数字都可以视为有效 你可以,如果你想解析后更改号码为另一种形式(例如,3.0 => 3,0.4 => .4,7 => 7.0) 不允许使用解析/四元数内置函数和标准漏洞。这包括eval关键字和功能。输入将是单个字符串,输出将是列表,数组,由空格分隔的值等。 因为这是代码高尔夫,所以以字节为单位的最短代码获胜。 吨测试用例 1+2i+3j+4k => [1 2 3 4] -1+3i-3j+7k => [-1 3 -3 7] -1-4i-9j-2k => [-1 -4 -9 -2] 17-16i-15j-14k => [17 …

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.