Questions tagged «code-golf»

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

8
吉米需要一双新鞋!
上周吉米(Jimmy)忙于使用所有这些 平台 和 绳索,可怜的吉米(Jimmy)甚至没有脚或脚站立! 您的工作是取一个包含多个Jimmys的细绳,然后给它们绑腿和穿鞋! 以Jimmy String的形式获取输入 吉米·字符串=> /o\ /o\ /o\ 仅包含/o\和 给输入中的每个Jimmy像这样的双脚: /o\ _/ \_ 将输入的浮头吉米弦转换为带脚弦的吉米,如下所示: // Input /o\ /o\ /o\ // Output /o\ /o\ /o\ _/ \_ _/ \_ _/ \_ 如果2个Jimmys靠得很近,他们必须移居以腾出空间,Jimmys总是会向右移,以便为其他Jimmys腾出空间。 // Input /o\/o\ // Output /o\ /o\ _/ \__/ \_ 除非必要,否则不得移动其他较远的吉米人 // Input /o\/o\ /o\ // …

24
小尾数转换为字符串
介绍 在使用BMP(位图)生成器的过程中,我遇到了将数字转换成小端十六进制字符串的问题。这是我用JavaScript创建的函数-但想知道小代码如何能类似地工作 let liEnd= num => num.toString(16).padStart(8,'0').match(/../g).reverse().join``; console.log(liEnd(304767)) // 304767 dec = 0x4a67f hex 运行代码段Hide results展开摘要 挑战 写函数,该函数将在输入上使用32位无符号整数,并生成具有小端序的8位十六进制字符串。做到这一点的示例算法: 将numb转换为十六进制字符串,例如: 304767 -> '4a67f' 添加填充零以获取8个字符的字符串: '0004a67f' 将字符串拆分为四个2个字符的片段: '00','04','a6','7f' 逆序排列 '7f','a6','04','00' 拼接并返回结果: '7fa60400' 输入和输出示例 输入数字(或带dec数字的字符串)在的左侧->,输出十六进制字符串在右侧 2141586432 -> 0004a67f 304767 -> 7fa60400
13 code-golf 

7
查找最接近的HTML颜色名称
输入值 单个十六进制六位数颜色代码,大写字母,不带#。如果愿意,也可以是24位整数。 输出量 最接近的HTML颜色名称(例如red或dark-salmon,定义为https://www.w3schools.com/colors/colors_names.asp或参见下文)。距离是通过将红色,绿色和蓝色通道的差异求和来定义的。 例子 FF04FE: magenta FFFFFF: white 457CCB(中途之间steelblue和darkslateblue): steelblue(圆了) 规则 有标准漏洞。 适用标准I / O 如果介于两种颜色之间,请四舍五入为具有较高通道总数的颜色。如果两种颜色具有相同的通道总和,则输出较高的一种作为十六进制代码:例如 red= #FF0000= 16711680> blue= #0000FF= 256 如果一个十六进制代码具有两个名称(例如grey和gray),则输出其中一个。 可以将输出大写并连字符 尾随/前面的空格/换行都可以 您必须完整输出名称。 这是代码高尔夫球,因此最短答案以字节为单位。 色彩 根据评论中的建议,以下是所有颜色名称以及CSV格式的相应十六进制值: Color Name,HEX Black,#000000 Navy,#000080 DarkBlue,#00008B MediumBlue,#0000CD Blue,#0000FF DarkGreen,#006400 Green,#008000 Teal,#008080 DarkCyan,#008B8B DeepSkyBlue,#00BFFF DarkTurquoise,#00CED1 MediumSpringGreen,#00FA9A Lime,#00FF00 SpringGreen,#00FF7F Aqua,#00FFFF Cyan,#00FFFF MidnightBlue,#191970 DodgerBlue,#1E90FF …
13 code-golf  color 

3
多用户CRUD:有效,问题还是错误?
简介: 您曾经和其他人一起使用过Dropbox吗,而您都修改了同一个文件?曾经有一个带有关系数据库的多用户应用程序,而两个人正在修改(或更糟的是,一个人正在删除而另一个人正在修改)同一对象?好吧,让我们用这个挑战(排序)模拟一下。 为了应对这一挑战,我们只有两个用户和一个或两个相关文件。两个用户都具有CRUD(创建,读取,更新和删除)所有文件的一般特权。 挑战: 输入: 我们将提供一些输入(输入格式灵活,并且可以使用任何合理的格式): 1)锁定模式(开/关):乐观和悲观并发锁定之间的区别。 两个用户都可以CRUD(创建,读取,更新和删除)所有内容,但有时可能会发生错误或问题。根据锁定模式的不同,关闭时可能会出现问题,而打开时可能会出错。下面在“ 输出”部分对此进行了说明。 2&3)两个用户操作。这些操作始终包括两件事:用户执行的操作(创建,读取,更新或删除)以及针对哪个文件。 输出: 我们将有三个可能的输出: 有效:两个用户的两个操作可以同时完成,而不会发生任何问题。 错误:两个用户的两个操作不能同时进行,并且会导致其中一个用户出错(哪个用户与此挑战无关)。在以下情况下可能会发生这种情况: 一个用户读取或更新另一个用户删除的文件; 两个用户都在锁定模式下打开了同一文件; 一个用户创建另一个用户读取/更新/删除的文件(这意味着该文件已经存在,因此无法创建); 两个用户都创建相同的文件。 问题:两个用户的两个操作可以同时执行,但是可能导致意外的问题。在以下情况下可能会发生这种情况: 两个用户都在锁定模式关闭时更新文件; 一个用户更新另一个用户读取的文件; 两个用户都删除同一个文件(实际上,这将对第二个用户造成错误,但是由于仍会按照用户想要的方式将其删除,因此,为了这个挑战,这将是一个问题而不是错误) 挑战规则: 所有输入和输出都是灵活的,每个人都应说明其答案中使用了哪一个! 输入示例:0/ 1用于锁定模式&31(第三个动作:更新;文件:1)和21(第二个动作:读取;文件:1);true/ false用于锁定模式&['C','A'](操作:创建;文件:A)&['D','B'](操作:删除;文件:B);等 实施例输出:null/ true/ false(空=有效;真=错误;假=问题); -1/ 0/ 1(-1 =错误; 0 =问题; 1 =有效); 但是,对于这三种输出类型,这三种可能的输出必须是唯一且不同的。 文件的调用无关紧要,也可以从上面的输入示例中看到。因此,请在您的答案中随意使用由单个(ASCII)字母或数字组成的任何类型的文件名。他们必须在所有的测试案例一致然而,这样你就不能使用A/ B在一个测试用例和1/ 2在另一个。 CRUD的四个动作也必须是唯一且一致的值。所以你不能使用'D'/ 'C'在一个测试用例,然后4/ 1在另一个测试案例。 您可以假设用户选择的文件在要读取,更新或删除时始终存在。 通用规则: 这是代码高尔夫球,因此最短答案以字节为单位。 不要让代码高尔夫球语言阻止您使用非代码高尔夫球语言发布答案。尝试针对“任何”编程语言提出尽可能简短的答案。 标准规则适用于具有默认I …

5
女王走过螺旋路
在遥远的王国中,国际象棋皇后每天沿着从1到1的螺旋路径散步n,而不希望跟随螺旋本身,而只是像在棋盘上那样做皇后的动作。女王深受她的臣民的喜爱,她们记下了她走过的每一个广场。假设女王可以在任何广场上开始步行并在任何广场上结束,那么她可以走的最短女王步行路程是什么? 挑战 给定矩形网格上的整数螺旋,编写一个函数,使用国际象棋皇后的动作返回此螺旋网格上两个数字之间的最短路径之一(由经过移动的单元数计算)。 例如,从16到25: 25 10 11 12 13 24 9 2 3 14 23 8 1 4 15 22 7 6 5 16 21 20 19 18 17 一些可能的路径包括16, 4, 2, 10, 25和16, 5, 1, 9, 25。 规则 输入将是任何两个正整数。 输出将是仅使用正交和对角线移动的整个螺旋路径的整数(包括两个端点)。 路径的长度由行进的细胞数计算。 您的答案可能是程序或函数。 这是代码高尔夫,因此最少的字节数获胜。 与往常一样,如果问题仍然不清楚,请告诉我。祝你好运,打高尔夫球! 测试用例 >>> queen_spiral(4, 5) 4, …

6
使用那不是模因
当前,互联网上存在一个模因,该模因包括句子,反义和最后添加n't。例如,I am small变为I am talln't 挑战 为了应对这一挑战,我们将简化此过程:您的任务是检测句子中是否有否定词,并将其替换n't为末尾添加的“正数” 。规则中将说明一些棘手的部分。 规则 您必须将String作为输入,并返回String作为输出。 输入将是一个小写的句子,仅包含.和,标点符号。 你必须更换任何no <any_word>或not <any_word>用<any_word>n't。 no/ not必须是一个单词,而不是子字符串:您不必更改任何内容none of those 如果单词已经以a结尾n,则必须替换n't为't:no plan成为plan't而不是 plann't 当no或not后面没有任何文字,标点符号或其它no/ not,你有来取代它yesn't。 复合词算作一个词。因此,即使no-op包含子字符串no,它也不包含单词 no。因此结果将是,no-op而不是 -opn't。 您不必担心语法错误。例如,there is no way将结果为there is wayn't。 不允许有任何标准漏洞。 这是codegolf,所以最短的代码获胜。 有一些示例,即使目前尚不清楚这一挑战。 例子 输入:我喜欢打代码,但我不喜欢简短的程序。这句话有意义吗……当然没有。 输出:我喜欢打代码,但我不喜欢简短的程序。这句话有意义吗……当然不是。 输入:不邀请您。出去。 输出:不邀请您。出去。 输入:我不满意,我没有计划,我也没有枪口 输出:我还不错,我有计划,我没有枪口 输入:哦不,不,我拒绝。 输出:哦,不是,不是拒绝。 输入:哦,不,不,我拒绝。 输出:哦,不是,不是,我拒绝。 输入:我不敢相信,您不能编码高尔夫。 输出:我不敢相信,您不能编码高尔夫。 输入:哦,不...他又做了一次。 输出:哦,不是……他又做了一次。 …
12 code-golf  string 

1
分析类似Collat​​z的序列
我们定义具有4个正整数的类Collat​​z序列s: n 起始值 d > 1 除数 m > 1 乘数 i 增量 (在原始Collat​​z序列中d = 2 m = 3和i = 1。) 给定这些整数s将以以下方式创建: s(0) = n 如果k > 0和s(k-1) mod d = 0再s(k) = s(k-1) / d 如果k > 0和s(k-1) mod d != 0再s(k) = s(k-1) * m + i 用一个例子的序列d …

10
排列CSV
概述: 您的工作是采用key=value格式的CSV输入,并以更有条理的方式(请参见下文)将其排列起来。 输入: 始终通过stdin。记录将始终采用以下格式key=value: foo=bar,baz=quux abc=123,foo=fubar baz=qwe,abc=rty,zxc=uiop,foo=asdf 事先没有可能的键列表,您必须在输入文本中找到它们。 输入结束将通过发出信号EOF,无论EOF您的操作系统适合哪种实现。 输出: 输出的第一行将是按字母顺序排列的所有键的列表(即使键是全数字)。之后,以相同的CSV格式将每个记录打印为适当的数字标题,而不列出键。因此,对于上面的示例,正​​确的输出将是: abc,baz,foo,zxc ,quux,bar, 123,,fubar, rty,qwe,asdf,uiop 常问问题: 我是否需要担心输入格式错误? 否。如果输入的格式不正确,例如,一行 foo,bar,baz 如何处理特殊字符的转义? 你可以假设不会有额外的,或者=在不属于一部分的数据key=value格式。"在此比赛中没有任何特殊含义(即使在传统CSV中也没有)。也不以任何方式特别。 行应与以下正则表达式匹配: ^([^=,]+=[^=,]+)(,[^=,]+=[^=,]+)*$ 因此,键和值都将匹配 [^=,]+ 什么CRLF对LF? 您可以选择适合您平台的任何定界符。大多数语言无需特殊的分隔代码即可处理此问题。 如果最后几列不存在,是否需要打印尾随逗号? 是。参见示例。 是否允许CSV解析器或其他类似的外部工具? 否。您必须自己解析数据。

4
大使和翻译
两名参加联合国会议的大使想互相讲话,但不幸的是,每个大使只说一种语言,而且他们不是同一种语言。幸运的是,他们可以与多位翻译交流,他们每个人都能听和说几种语言。您的任务是确定最短的翻译链(因为您希望尽可能减少翻译中的损失),从而使两位大使能够相互交谈。 编码 输入:两种语言,即2个字母的小写字符串(每个大使的语言)和语言列表(每个可用翻译器一个列表) 您也可以输入整数而不是2个字母的代码。 输出:按索引或值排列的一系列翻译,是允许两个大使进行交流的最短翻译链中的任何一个。如果没有有效的翻译链,则行为未定义。(您可能会崩溃,输出任意值或表明错误) 一个有效的翻译链是第一个翻译说一种大使的语言,第二个和随后的翻译与前一个翻译共享至少一种语言,最后一个翻译说另一种大使的语言。 例子 使用基于零的索引: es, en, [ [es, en] ] ==> [0] en, en, [] ==> [] en, jp, [ [en, zh, ko, de], [jp, ko] ] ==> [0, 1] es, ru, [ [gu, en, py], [po, py, ru], [po, es] ] ==> [2, 1] fr, …

5
地形可达性
基于回合制的战术游戏,例如“战前战争”,“战地风云”和“火焰纹章”,是由不同地形的方格组成,具有不同运动类别的单位,每种地形类型需要不同的成本。我们将调查该问题的一部分。 挑战 您的任务是在给定地形成本和移动速度的网格的情况下,确定一个位置是否可以与另一个位置到达。 单位只能正交移动,其中移动到一个正方形上的成本是网格上相应单元格的值(移动是免费的)。例如,从一个值为3的单元格移动到一个值为1的单元格需要1次移动,而从另一个方向移动则需要3个运动。某些正方形可能无法访问。 例 1 [1] 1 1 1 1 2 2 3 1 2 3 3 3 4 1 3 <1> 3 4 从[1]移到<1>至少需要7个移动点,方法是向右移动一个方块,然后向下移动三个方块。因此,如果给定6或小于6的移动速度,则应输出虚假答案。 示例测试用例 这些将使用左上角零索引(行,列)坐标,而不是用括号括起来的单元格作为开始和结束位置,以使解析更加容易。无法访问的单元格将用X 案例1a 1 1 2 1 X 1 2 2 1 1 2 1 1 2 1 X X X 1 2 Speed: …

10
新订单1:感觉如何?
介绍 将所有正数按其常规顺序(1、2、3,...)有点无聊,不是吗?因此,这是围绕所有正数的排列(重新排列)的一系列挑战。 在本系列的第一个挑战是用于输出的(n)的一个给定的n作为输入,其中a(n)是A064413,也被称为EKG序列,因为它的值的曲线图类似于一个心电图(因此“ 这是如何感觉 “参考”。该序列的有趣特性是所有正整数都只出现一次。另一个值得注意的特征是所有素数都以升序出现。 任务 给定一个整数输入n,输出a(n)。 一个(n )a(n)a(n)定义为: a (1 )= 1 ; a (2 )= 2 ;a(1)=1;a(2)=2;a(1) = 1; a(2) = 2; 对于,是尚未使用的与共享因子的最小数字n > 2n>2n > 2一个(n )a(n)a(n)a (n − 1 )a(n−1)a(n-1) 注意:此处假定基于1的索引;您可以使用基于0的索引,因此,等等。如果您选择使用它,请在答案中提及。a (0 )= 1 ; a (1 )= 2a(0)=1;a(1)=2a(0) = 1; a(1) = 2 测试用例 Input …

18
跳数
跳数定义为正数n,所有成对的连续十进制数字之差为1。此外,所有单数位数字均视为跳数。例如。3、45676、212是跳跃数字,但414和13不是。9与0之差不视为1 挑战 创建一个程序,输出以下结果之一: 给定输入n输出的第一个n跳跃数。 给定输入n输出,序列的nth项。 注意 允许使用任何有效的I / O格式 允许1索引或0索引(请指定) 以下是一些跳跃数字: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 21, 23, 32, 34, 43, 45, 54, 56, 65, 67, 76, 78, 87, 89, 98, 101, 121, 123, 210, 212, 232, 234, 321, 323, 343, 345, 432, 434, …

3
矩阵旋转排序
让我们定义一个具有唯一数字的非空,未排序和有限矩阵,如下所示: ñ= { 41个5376}N={457136}N = \begin{Bmatrix} 4&5&7\\1&3&6 \end{Bmatrix} 让我们定义4个矩阵移动为: ↑*(向上):向上移动一列 ↓*(向下):向下移动一列 →*(右):向右移动一行 ←*(左):向左移动一行 星号(*)表示受移动影响的列/行(可以是0索引或1索引。由您决定。请在您的答案中说明哪一个)。 面临的挑战是,使用上述动作以升序对矩阵进行排序(左上角最低,右下角最高)。 例 输入: 可能的输出:或。(请注意,所有这些举动都可以对矩阵进行排序,因此两个答案都是正确的)ñ= { 41个2536}N={423156}N=\begin{Bmatrix}4&2&3\\1&5&6 \end{Bmatrix}↑0↓0 输入: 可能的输出:ñ= { 24351个6}N={231456}N=\begin{Bmatrix}2&3&1\\4&5&6 \end{Bmatrix}→0 输入(测试用例示例): 可能的输出:ñ= { 41个5376}N={457136}N = \begin{Bmatrix} 4&5&7\\1&3&6 \end{Bmatrix}↑0↑1←1↑2 输入: 可能的输出: ñ= ⎧⎩⎨⎪⎪581个927643⎫⎭⎬⎪⎪N={596824173}N = \begin{Bmatrix} 5&9&6\\ 8&2&4\\ 1&7&3 \end{Bmatrix}↑0↑2→0→2↑0→2↑1↑2←1 输入: 可能的输出: ñ= ⎧⎩⎨⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪1个1017152630272711162228381221232941318岁1924659142025⎫⎭⎬⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪N={127282961023451778139151112181426162119203022232425}N = \begin{Bmatrix} …

14
时钟(音译)密码
介绍: 在我小时候编写的文档中,我存储了许多不同的密码,我选择了一些我认为最适合挑战的密码(不太琐碎,也不太难),并将它们转变为挑战。它们中的大多数仍位于沙箱中,我不确定是否要全部发布还是仅发布其中几个。这是第三个也是最简单的一个(在我之前发布的Computer Cipher和Trifid Cipher之后)。 对于时钟密码,我们使用以下图像对文本进行加密: 因此,类似的句子this is a clock cipher将变为: t h i s i s a c l o c k c i p h e r (without additional spaces of course, but added as clarification) 19:7:8:18:00:8:18:00:AM:00:2:11:14:2:10:00:2:8:15:7:4:17 挑战: 给定一个字符串sentence_to_encipher,如上所述将其加密。 挑战规则: 您可以假定sentence_to_encipherwill只包含字母和空格。 您可以使用完整的小写字母或完整的大写字母(请说明您在答案中使用了哪一个)。 你不允许添加前导零的单个数字加密信件b通过j,但两个零00是强制性的空间。 您应将其:用作分隔符,并且:不允许使用其他前导或尾随。 只要保持一致,就可以使用小写字母am,pm而不能使用大写字母AM和PM。 通用规则: 这是代码高尔夫球,因此最短答案以字节为单位。 不要让代码高尔夫球语言阻止您使用非代码高尔夫球语言发布答案。尝试针对“任何”编程语言提出尽可能简短的答案。 标准规则适用于具有默认I …

18
查找罗科号码
采访中有人问我这个问题,但我找不到解决办法。我不知道这个问题是否对。我尝试了很多,但无法解决。老实说,我什么都没想到。 罗科数 如果正整数nnn可以表示为n=p(p+14)n=p(p+14)n=p(p+14)或n=p(p−14)n=p(p−14)n=p(p-14),其中ppp是质数,则为Rocco 数。 前10个Rocco号码是: 32,51,95,147,207,275,351,435,527,62732,51,95,147,207,275,351,435,527,62732, 51, 95, 147, 207, 275, 351, 435, 527, 627 任务 您的代码必须接受一个正整数作为输入,并确定它是否是Rocco数字。 印象分 编写一个函数,计算并打印小于或等于100万的Rocco数。 编写一个函数,该函数根据质数的奖金问题(上面的问题)计算并打印Rocco数的计数。

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.