Questions tagged «code-golf»

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

15
预测碰撞:强盗会逃脱吗?
将一条道路视为一条数字线,从起点开始0并无限期地延伸: ................................................................. 路上有两辆车:C和R。C是试图抓住的警察R,强盗。C在开始0,并R开始在道路上的某个地方: C.............................R.................................. 警察已经在移动-他正在追捕强盗。他的速度恒定。强盗刚跳上他的车。他在加速。每一刻,强盗的速度都随着他的加速而增加。 说警察的速度是7,强盗的加速度是1。如果抢劫犯始于30,这是每次滴答声时的样子: C.............................R.................................. .......C.......................R................................. ..............C..................R............................... .....................C..............R............................ ............................C...........R........................ ...................................C.........R................... ..........................................C........R............. .................................................C........R...... 在上述最后一个滴答声之后,强盗的速度等于警察的速度,他仍然领先。由于警察以恒定的速度移动并且强盗仍在加速,因此强盗逃逸,因此您输出的是真实值。但是,如果警察的速度9... C.............................R.................................. .........C.....................R................................. ..................C..............R............................... ...........................C........R............................ ....................................C...R........................ .............................................X................... ...然后警察在强盗可以离开之前赶上强盗(用标记X),因此您输出假值。 你的任务 给定三个输入-警察的速度,强盗的位置和强盗的加速度-确定强盗是否会逃脱。 规则 警察总是从开始0。 所有输入均为正整数。 如果在任何滴答声后,警察的位置大于或等于强盗的位置,则警察会抓住强盗。 尚未被抓的强盗就逃走了,他的速度比警察的还快。 您的程序必须在输出后终止。 强盗在移动每个刻度之前就加速了。 测试用例 Cop Speed, Robber Position, Robber Acceleration -> Output 7, 30, 1 -> truthy 9, 30, 1 -> falsey …

28
寻找你的伴侣
挑战 给定一个任意的2元组列表,并在其中一个元组中包含一个元素,则输出其“伙伴”,即给出a和[(i,j),...,(a,b),...,(l,m)]输出b。您可以假定所有元组都是唯一的,并且元组中的所有元素都是字符串。进一步假设您同时没有(x,y)和(y,x)。 测试用例 Input Output [("(", ")"), ("{", "}"), ("[", "]")], "}" "{" [("I'm", "So"), ("Meta", "Even"), ("This", "Acronym")], "Even" "Meta" [("I", "S"), ("M", "E"), ("T", "A")], "A" "T" [("test", "cases"), ("are", "fun")], "test" "cases" [("sad", "beep"), ("boop", "boop")], "boop" "boop" 最小字节获胜!

4
矩形差
在此挑战中,您将获得两个重叠的矩形,并且需要计算通过从另一个中删除一个而创建的矩形。 例如,如果您从黑色矩形中删除红色矩形: 您最终得到以下两个矩形集之一: 您还需要处理以下内容: 更明确地说: 您将输入两个矩形A和B的坐标。 您需要输出覆盖A的所有区域而没有B的最少的非重叠矩形。允许任何可能的覆盖 直角坐标作为4个整数传递。您可以将它们传递为两对(代表两个角点),也可以作为4个整数的元组/列表传递。您的输入和输出必须保持一致。 A和B不一定会重叠或接触,并且各自的面积至少为1 测试用例: [(0 0) (5 5)] [(3 4) (8 7)] -> [(0 0) (5 4)] [(0 4) (3 5)] # or [(0 0) (3 5)] [(3 0) (5 4)] [(2 4) (10 11)] [(5 5) (6 6)] -> [(2 4) (10 5)] …

21
在斐波那契数字内
挑战 给定一个整数输入,返回包含其内部输入的第一个斐波那契数以及该斐波那契数的索引(索引从0或1开始-取决于您,但请在您的答案中提及)。例如,如果输入为12,则程序将返回,26: 121393因为在数字(12 1393)中找到12,并且该数字位于斐波那契数的索引26处。 例子 给定输入: 45 您的程序应输出: 33: 3524578 输入: 72 输出: 54: 86267571272 输入: 0 输出: 0: 0 输入: 144 输出: 12: 144 计分 这是代码高尔夫球,因此每种语言中最短的答案将获胜。

29
运行列表的第二个最大值
给定一个整数列表,您的任务是输出前k个元素中的第二个最大值,对于2到输入列表长度之间的每个k。 换句话说,为输入的每个前缀输出第二个最大值。 您可以为第一个元素输出任意值(其中k = 1),也可以忽略此值,因为1个元素的列表没有第二个最大值。您可以假设输入中至少包含2个元素。 最短的代码胜出。 例子 Input: 1 5 2 3 5 9 5 8 Output: 1 2 3 5 5 5 8 Input: 1 1 2 2 3 3 4 Output: 1 1 2 2 3 3 Input: 2 1 0 -1 0 1 2 Output: 1 1 …

14
帕斯卡尔的菱形
Pascal的菱形(实际上是一个三角形)是通过添加以下模式获得的: * *** x 代替 * * x 这意味着每个单元格是该单元格正上方的行中的三个单元格和其上方的行2中的一个单元格的总和。就像Pascal的三角形一样,第零行上也有一个1生成三角形的单。 这是帕斯卡的菱形的前两排 1 1 1 1 1 2 4 2 1 1 3 8 9 8 3 1 任务 给定一个行号(从顶部开始)和一个列号(从该行的第一个非零项目开始)输出该特定单元格的值。两个输入都可以被索引为1或0(如果需要,可以混合和匹配)。 这是代码高尔夫球,因此您应力争使源代码的文件大小尽可能小。 OEIS A059317

11
长发公主,长发公主,放下你的头发!
描述 我想每个人都知道长发公主和王子的童话。对于那些不喜欢的人:在这里阅读。但是,长发公主刚刚剪了头发,所以它可能还不够长,无法让她的王子爬上去!她可能会很难过。 挑战 您的任务是编写一个函数,该函数可以评估王子要求她放头发时长发公主会说些什么:当头发的长度大于或等于塔高时,再加上一米(安全准则),她将成为veeeery高兴地说Aaaah!,与的数目a相同length of her hair - height of the tower。否则,她的头发没有足够的长度,并且她开始哭泣:Booho!,其中os在h相等的三分之二之前height of the tower - length of her hair,而os在h之后的其余部分。os后面的s 数B必须四舍五入,因此,如果得到2.6,将为3 os,其他的必须在s后面h。 输入输出 给您提供正整数(包括空值)作为参数,列表或两个单个数字,顺序是最方便的顺序,但是必须说明采用它们的顺序。作为输出,打印长发公主将说的话。 测试用例 在测试用例中,第一个数字将是头发的长度。 0, 0 -> 'Bh!' (probably a dry sob..) 2, 1 -> 'Aah!' 1, 2 -> 'Boh!' 1, 4 -> 'Booho!' 4, 1 -> 'Aaaah!' …
20 code-golf 

14
西班牙身份证控制字符计算器
这是一个非常非常简单的算法,我相信可以用许多不同的语言解决。在西班牙,身份证(称为DNI)由8个数字和一个控制字符组成。控制字符是通过以下算法计算的:将数字除以23,执行其余操作,然后根据此表将其替换为字符: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 T R W A G M Y F P D X B N J Z S Q V H L C K E 如果DNI属于生活在西班牙的外籍人士,第一个数字更改为X,Y或Z它被称为NIE。在这种情况下,在计算控制字符之前进行以下替换: X Y …

28
这些标识符是否等效?
在Nim语言中,用于区分标识符的规则比大多数其他语言稍微宽松一些。如果两个标识符遵循以下规则,则它们是等效的或寻址相同的变量: 两者的第一个字符相同 (区分大小写) 两个字符串相同(壳体在敏感)除去后的所有实例的字符-和_ 挑战 编写一个程序/函数,该程序/函数接受两个表示Nim标识符的字符串,并根据上述规则是否等效来输出真值或假值。 技术指标 适用标准I / O规则。 标准的漏洞被禁止。 字符串将仅包含ASCII可打印内容。你并不需要检查它是否是一个有效的标识符。 字符串可以作为两个单独的输入,字符串列表等(您知道练习) 空字符串无需处理。 真值和假值的输出必须一致。 挑战不是要找到所有语言中最短的方法,而是要找到每种语言中最短的方法。 除非另有说明,否则您的代码通常以UTF-8编码形式以字节计分。 允许执行此任务的内置函数,但鼓励使用不依赖内置函数的解决方案。 鼓励甚至对“实用”语言进行解释。 测试用例 Input Output count, Count falsey lookMaNoSeparator, answer falsey _test, test falsey test, tset falsey aVariableName, a_variable_name truthy numbers_are_cool123, numbersAreCool123 truthy symbolsAre_too>_>, symbols_areTOO>> truthy 未引用的参考实现 这是用Nim编写的。 import strutils, re proc sameIdentifier(a, …

30
我的价值在哪里?
我的老板现在要我实现一种机制,使他可以搜索数组中的项目,并为他提供该值所在的索引。 你的任务: 编写一个程序或函数,该程序或函数接收一个数组和一个值(字符串,整数,浮点数或布尔值),并返回出现该值的数组的索引(0或1索引,以您喜欢的为准)。如果该值不在数组中,则返回一个空数组。 输入: A中可能存在或不存在的数组A和值V。 输出: 包含V在A中出现的索引的数组,如果V在A中不出现,则为空数组。 测试用例: 请注意,测试用例基于0。 12, [12,14,14,2,"Hello World!",3,12,12] -> [0,6,7] "Hello World", ["Hi", "Hi World!", 12,2,3,True] -> [] "a", ["A",True,False,"aa","a"] -> [4] 12, [12,"12",12] -> [0,2] 得分: 这是代码高尔夫球,因此以字节为单位的最低分数获胜。

16
矩阵的行/列中是否有N个连续出现的数字?
以包含正整数和单个正整数N的矩阵A作为输入,并确定矩阵中的任何行或列中是否至少有N个连续的相同数字出现。 您只需要水平和垂直测试。 测试用例 N = 1 A = 1 Result: True ---------------- N = 3 A = 1 1 1 2 2 3 Result: True ---------------- N = 4 A = 1 1 1 2 2 3 Result: False ---------------- N = 3 A = 3 2 3 4 2 …

30
方形如何结束?
在BASE-10,所有的完全平方结束0,1,4,5,6,或9。 在基地-16,所有完全平方结束0,1,4,或9。 Nilknarf在这个答案中描述了这是为什么以及如何很好地解决这个问题,但是我还将在这里给出简短的描述: 当对以10为底的数字N进行平方运算时,“个”数字不受“十”个数字或“百”个数字等的影响。只有N中的“一位”数字会影响N 2中的“一位”数字,因此找到N 2的所有可能最后数字的一种简便(但可能不是最高尔夫)方法是为所有0 <= n找到n 2 mod 10 < 10。每个结果都是可能的最后一位数字。对于Base-m,您可以找到对于所有0 <= n < m n 2 mod m。 编写一个程序,当输入为N时,输出以Base-N为单位的理想平方的所有可能的最后一位数字(无重复)。您可能会假设N大于0,并且N足够小以至于N 2不会溢出(如果可以一直测试到N 2,我会给您有限的布朗尼点,但您知道布朗尼点对实际点的汇率是无穷大)。 测试: Input -> Output 1 -> 0 2 -> 0,1 10 -> 0,1,5,6,4,9 16 -> 0,1,4,9 31 -> 0,1,2,4,5,7,8,9,10,14,16,18,19,20,25,28 120 -> 0,1,4,9,16,24,25,36,40,49,60,64,76,81,84,96,100,105 这是代码高尔夫球,因此适用标准规则! (如果您觉得这太容易了,或者您希望在这个主题上有一个更深入的问题,请考虑以下问题:二次方残基测试的最小基数覆盖率)。

4
分类四边形| 帮助我进行数学考试!
救命!我的数学考试即将上线,我没有学习!1考试的一部分是根据给定的顶点坐标对四边形进行分类,但不幸的是,我不知道该怎么做。2 因此,您面临的挑战是编写一个程序来为我执行此操作,这样我就不会失败! 挑战 给定四个顶点(其中三个顶点都不共线),确定由这四个顶点形成的四边形的最具体分类。 我所说的“最具体的分类”是即使所有正方形都是矩形,但如果形状是正方形,则应指出它是正方形而不是长方形。 输入值 输入将以四个(x,y)坐标给出。您可以将它们作为长度为4的列表/长度为2的元组的列表。或者,也可以将输入作为x坐标的列表和各个y坐标的列表。 例如,如果我的形状具有点顶点(0, 0),(5, 0),(6, 1),和(1, 1),你可以选择采取输入任一下列格式或类似的东西: [(0, 0), (5, 0), (6, 1), (1, 1)] ([0, 5, 6, 1], [0, 0, 1, 1]) 您可以假设四边形不是自相交的,并且点以正确的顺序给出(即,输入中的两个连续点将由四边形中的线段连接)。 输出量 以下四边形的每一个类别都需要一个唯一的输出: 广场 长方形 菱形 平行四边形 梯形/梯形 风筝 四边形 这可能是确切的名称本身,一个字符,一个整数等。 规则 适用标准漏洞 如果您的编程语言具有将执行此确切任务的内置程序,则不允许该内置程序。 允许使用内置函数查找两点之间的距离。 允许使用内置函数查找两条线之间的角度。 此时,如果您知道所有术语,就可以开始编程了!(测试用例在最后) 术语 本节适用于需要澄清不同形状定义的任何人。 广场 当且仅当四边形的所有边长相等且每对相邻边垂直(即,既是矩形又是菱形)时,四边形才是正方形。 长方形 …

30
我是一个自构数字吗?
自守数字是一个以10为底的正方形后缀的数字。这是OEIS中的序列A003226。 你的任务: 编写程序或函数以确定输入是否为自守数字。 输入: 0到10 ^ 12(含)之间的整数,可以是也可以不是自守数字。 输出: 真/假值,指示输入是否为自变形数。 例子: 0 -> truthy 1 -> truthy 2 -> falsy 9376 -> truthy 8212890625 -> truthy 得分: 这是代码高尔夫,以字节为单位的最低得分获胜。

30
适当的除数混搭
甲适当除数是一个除数的数的Ñ,这是不Ñ本身。例如,12的适当除数是1、2、3、4和6。 您将得到一个整数 X,X ≥2,X≤1000。您的任务是将2到x(含)的整数的所有最高适当除数求和(OEIS A280050)。 示例(带有x = 6): 找到2到6(含)之间的所有整数:2,3,4,5,6。 从所有数字中获取适当的除数,然后从每个数字中选择最高的除数: 2-> 1 3-> 1 4-> 1,2 5-> 1 6-> 1,2,3。 对最高除数进行求和:1 + 1 + 2 + 1 + 3 = 8。 最终结果是8。 测试用例 输入| 输出量 ------- + --------- | 2 | 1个 4 | 4 6 | 8 8 | …

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.