Questions tagged «code-golf»

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

3
解码人造盲文
⢣⠃⢎⠆⣇⡇⡯⡂⠈⡏⢰⢵⢐⡭⢸⠪⡀⢸⢐⡭⠀⢹⠁⢎⠆⢸⣱⢸⡃⢎⠰⡱⢸⣱⢸⡃⠈⡏⢸⡃⡱⡁⢹⠁⢸⡀⡇⡗⢅⢸⡃⠈⡏⢸⢼⢸⢐⡭⠀ ⣇⢸⡃⢹⠁⢹⠁⣟⢸⢕⢐⡭⠀⡮⡆⡯⡂⣟⠀⡯⠰⡱⢸⣸⢸⢕⠀⣏⡆⢎⠆⢹⠁⣪⠅⢸⢼⢸⠰⣩⢸⢼⠀⡮⡆⡗⢼⢸⣱⠀⢎⠆⡯⠀⢇⠇⡮⡆⡯⡂⡇⡮⡆⣟⡆⣇⢸⡃⠸⡰⡸⢸⢸⣱⠈⡏⢸⢼⠀ ⢎⠆⡗⢼⢸⡃⢸⡃⡗⠔⡇⡯⠂⢹⠁⢣⠃⠸⡸⢸⡃⡯⡂⢹⠁⡇⢎⢰⢵⢸⡀⢸⡀⡇⡗⢼⢸⡃⢐⡭⢸⡃⡯⠂⡮⡆⡯⡂⡮⡆⢹⠁⣟⢐⡭⠀⢎⢸⢼⢰⢵⢸⢕⢰⢵⠰⡁⢹⠁⣟⢸⢕⢐⡭⠀ ⡮⡆⢐⡭⢸⠕⢰⢵⠰⡁⣟⠀⡇⣪⠅⢈⣝⢸⡃⡯⡂⢎⠆⠸⡰⡸⢸⢸⣱⠈⡏⢸⢼⠀ ⣪⠅⢎⠆⢸⠈⡏⠀⣇⠰⡱⠰⡱⢸⠪⡀⣪⠅⢸⡀⡇⡗⢅⢸⡃⠸⡰⡸⠰⡱⢸⢕⢸⣱⢐⡭⠀⡮⡆⡯⡂⣟⠀⣪⠅⣟⢸⠕⢰⢵⢸⢕⢰⢵⠈⡏⢸⡃⣏⡆⢸⣳⠘⡜⠀⢹⠁⢇⢆⠇⢎⠆⢸⡀⡇⡗⢼⢸⡃⣪⠅ ⡇⡗⢼⢸⠕⢸⣸⠈⡏⠀⡇⣪⠅⢰⢵⠀⣪⠅⢹⠁⡯⡂⡇⡗⢼⠰⣩⠀⢎⠰⡱⢸⠢⡇⢹⠁⡮⡆⡇⡗⢼⢸⢸⠢⡇⢎⡅⢸⠅⡮⡆⣇⡇⡱⡁⢸⣳⢸⢕⢰⢵⢸⢸⡀⣇⢸⡃⠰⡱⢸⠅ ⢎⠆⡗⢼⢸⡀⢣⠃⢸⡃⡗⢼⠰⣩⢸⡀⡇⣪⠅⡧⡇⢸⣸⢸⠕⢸⠕⢸⡃⡯⡂⢎⢰⢵⢐⡭⢸⡃⢸⡀⣟⠈⡏⠈⡏⢸⡃⡯⡂⣪⠅⢰⢵⢸⠢⡇⣏⡆⢐⡭⢸⠕⢰⢵⠰⡁⣟⢐⡭⠀ ⡮⡆⣟⡆⢎⢸⣱⢸⡃⡯⠰⣩⢸⢼⢸⢀⠇⡗⢅⢸⡀⡗⠔⡇⡗⢼⠰⡱⢸⠕⠰⣩⡆⡯⡂⣪⠅⢹⠁⣇⡇⢇⠇⢇⢆⠇⡱⡁⢣⠃⣩⡃ ⢎⠆⣇⡇⢹⠁⡯⠂⣇⡇⢹⠁⢸⠢⢺⢰⢵⠘⡜⠀⣟⡆⣟⠀⣇⡇⡯⠂⡯⠂⣟⢸⢕⠀⢎⠆⡯⡂⢸⡀⢎⠆⢇⢆⠇⣟⢸⢕⠰⡁⡮⡆⣪⠅⣟⠀ ⣪⠅⡧⡇⢎⠆⡯⡂⢹⠁⣟⢐⡭⠈⡏⠀⢇⢆⠇⡇⡗⢼⢐⡭⠀ ⡗⢼⠰⡱⠀⣇⠰⡱⠰⡱⢸⠕⢸⢼⠰⡱⢸⡀⣟⢐⡭⠀ 上面的ASCII版本 ⡯⡂⣟⢸⡀⡮⡆⢹⠁⣟⢸⣱⠀ 关于盲文字符 盲文字符将4 x 2的矩形点封装在一起,可以将其视为布尔矩阵。 所有这些矩阵的串联是一个4 x 2 * n布尔矩阵,其中n是输入字符串的长度。 您应该寻找没有任何点的垂直线,并使用它们作为分隔符将每个字符的大矩阵分解为较小的矩阵。 然后,寻找将其转换为英文字母或空格的模式。请注意,删除分隔符(垂直的空线)后,空格为4 x 0矩阵。 以下是ASCII字母的说明: A | B | C | D | E | F | G | H | I | J | K | L …

21
确定丰度
超丰数是一个整数n,它为除数和函数 σ的比率设置了一个新的上限。换句话说,当且仅当对于小于n的所有正整数x而言,n才是多余的: σ(n)n>σ(x)xσ(n)n>σ(x)x\frac{\sigma(n)}n>\frac{\sigma(x)}x 对于一些值: n σ(n) σ(n)/n superabundant 1 1 1.0000 yes 2 3 1.5000 yes 3 4 1.3333 no 4 7 1.7500 yes 5 6 1.2000 no 6 12 2.0000 yes 7 8 1.1429 no 8 15 1.8750 no 9 13 1.4444 no 这些的较长列表(用于测试用例)可以在OEIS A004394中找到。 一个强烈推荐的否定测试用例(如果您的口译员可以处理的话)是360360,因为它与最后一个多余的数字联系在一起。 挑战 您的程序应采用单个正整数,并输出表示该整数是否过多的真实或错误值。 因为这是代码高尔夫球,所以最短的答案以字节为单位。

22
将ISBN-13转换为ISBN-10
介绍 在此挑战中,您的任务是,在给定书号为ISBN-13的情况下,为书籍生成ISBN-10代码。这样的ISBN-13代码由以下几部分组成-: 978-GG-PPPP-TTT-C 字母G(组),P(发布者),T(标题)和C(校验和)都代表一位数字。出于这一挑战的目的,分组和计算C(参见挑战)并不有趣,我们将删除所有连字符以简化此任务。 ISBN-10号的布局非常相似: GG-PPPP-TTT-c 字母G,P和T中的相同的13位数字的ISBN,但是c是不同的(并且使用不同的算法来计算)。c选择数字的方式应使以下等价成立(数字顺序): 10*G + 9*G + 8*P + … + 3*T + 2*T + 1*c = 0 (mod 11) 例 让我们考虑一下ISBN编号9780345391803:要获得其相应的ISBN-10代码,我们只需删除前导978和校验和3yield 034539180。 接下来,我们需要计算新的校验和: 10*0 + 9*3 + 8*4 + 7*5 + 6*3 + 5*9 + 4*1 + 3*8 + 2*0 = 185 下一个可被整除的数字11是187,因此新的校验和为2,因此得到的是ISBN-10代码0345391802。 规则 您的输入将始终具有一个对应的ISBN-10数字(即,该数字正好是13位数字,以开头978) …

8
建立这座金字塔
你的金字塔 我要您建造的金字塔完全由立方体组成。它有24层,从顶部开始的第 N 层包含以N×N正方形排列的N 2个立方体。金字塔看起来像这样: 要建造金字塔,您将需要大量的多维数据集。您将得到4900个立方体,它们以70 x 70的正方形排列,如下所示: (好的,我承认正方形的图片完全没有必要。) 由于1 2 + 2 2 + 3 2 + ... + 24 2 = 70 2,因此您拥有正确数量的立方体来构建金字塔。您所要做的就是告诉我每个多维数据集应该放在哪里。 你的任务 您应该在正方形的立方体和金字塔的立方体之间选择任意双射。(如果您的回答说出您使用的是哪种4900,那就太好了。) 然后,编写执行以下操作的函数或程序: 给定一个立方体在70 x 70平方中的位置(作为一对坐标(X,Y)), 输出其在金字塔中的位置(作为三坐标(A,B,C))。 输入和输出坐标都可以是0索引或1索引。假设索引为1,则您的输入(X,Y)将是一对1到70之间(A,B,C)的整数。A应该是从顶部开始计数的层(介于1和24之间),并且(B,C)应该是该层中该立方体的坐标(介于1和之间A)。 例如: 金字塔的顶部立方体有坐标(1,1,1)。 金字塔的底座的四个角上有坐标(24,1,1),(24,1,24),(24,24,1),和(24,24,24)。 如果决定将正方形的角放置在金字塔的角上,则在输入(70,1)时可以给出输出(24,24,1)。 您可能会假设您只会获得有效的坐标(X,Y)作为输入。正确性完全由以下规则决定:两个不同的有效输入应始终给出两个不同的有效输出。 这是代码高尔夫球:最短的代码获胜。

11
它是它本身的子串吗?
给定一个字符串,返回该字符串是否是程序源代码的子字符串。 应用标准的quine规则,这意味着您无法阅读自己的源代码。确保输入的长度小于或等于程序的长度。您可以返回任何两个不同的值,不一定返回true和false值。您也可以提交功能而不是完整程序。 这是一个代码高尔夫球,所以最短的代码胜出! 一个例子 如果你的源代码print(input() = False),它应该返回True为nt(i,但假的tupn。

30
比较以字符串形式给出的两个数字
我上班有问题。我需要比较来自两个不同数据库的两个数字作为字符串。数字可能带有前导零和/或前导/后跟空格。所以我可能"0001 "来自一个数据库,也可能来自另一个数据库" 1 "。 我用以下代码解决了C#中的问题: Func<string, string, bool> f = (a,b) => int.Parse(a.Trim()) == int.Parse(b.Trim()) 挑战 这是一个非常简单的挑战,适合初学者和任何深奥的语言。给定两个数字作为可能带有前导零和/或前导/后跟空格的字符串,请编写最短的代码来检查两个字符串是否表示相同的数字。 输入必须是两个字符串或您的语言中的等效字符串(char数组可以),它们将始终表示大于零的整数值。 输出必须是代表真值和假值的任何两个一致值。 例子 A B Result ---------------------------- "0001" "1 " true "1450" "1450 " true "0010001 " " 10001 " true "0010000" " 10 " false "101023" "101024" false 这是代码高尔夫球,因此每种语言的最短代码可能会胜出!

27
VEVO用户帐户检查器
我们经常在YouTube上看到音乐视频。许多托管音乐视频的YouTube频道都是“由VEVO提供支持”的。通过将VEVO嵌入到其视频缩略图中并将VEVO附加到其频道名称,可以轻松识别这些内容。 现在,编写一些代码来测试用户给定的字符串是否为VEVO用户帐户。 有效的VEVO用户帐户字符串的要求: 必须仅包含大写,小写和数字字符。(无空格或标点符号) 长度不能超过80个字符。 字符串末尾必须有“ VEVO”子字符串 测试用例: 有效输入: AdeleVEVO ConnieTalbotVEVO SHMVEVO justimberlakeVEVO DJMartinJensenVEVO test123VEVO 输入无效: syam kapuk jypentertainment Noche de Brujas testVEVO123 当然,因为这是code-golf,所以我正在寻找使用任何编程语言的最短代码。

9
小组是周期性的吗?
介绍 如果您已经知道什么是循环组,则可以跳过此部分。 一个组是由一个集合和一个关联的二进制运算定义的$(也就是说,(a $ b) $ c = a $ (b $ c)。该组e中仅存在一个元素,而a $ e = a = e $ a对于该组中的所有元素a(恒等)。对于a该组中的每个元素,都存在一个精确的b使得a $ b = e = b $ a(逆)元素对于组中的每个两个元素a, b,a $ b都位于组中(闭包)。 我们可以a^n代替来写a$a$a$...$a。 通过任何元件产生的循环子a组中的是<a> = {e, a, a^2, a^3, a^4, ..., a^(n-1)},其中n是子组的顺序(大小)(除非该亚型是无限的)。 如果一个组可以由其元素之一生成,则它是循环的。 挑战 给定有限群的Cayley表(乘积表),确定它是否为循环的。 例 让我们看一下下面的Cayley表: 1 2 3 …

11
骑士在N步能走到哪里?
这是APL CodeGolf 秋季比赛的第 3洞。我是该问题的原始作者,因此可以在此处重新发布。 鉴于: 转数(如果没有运动为0,请说明,否则我们将其称为1), 在8 x 8棋盘上的一个或多个起始位置(以任何形式,例如0或1索引坐标或64个连续的数字/字符或A1-H8 –状态)的列表, 返回(以任何顺序)在给定匝数后,骑士可以位于的唯一位置列表(与输入格式相同)。 每个骑士必须每转一个步,但您不必担心多个骑士占据同一广场。 骑士只能相对于其当前位置移动到标记为X的位置,标记为♞: 示例(1索引坐标) 1从[[1,1]]: [[2,3],[3,2]] 2来自[[1,1]]: [[1,1],[1,3],[1,5],[2,4],[3,1],[3,5],[4,2],[4,4],[5,1],[5,3]] 1从[[1,1],[5,7]]: [[2,3],[3,2],[3,6],[3,8],[4,5],[6,5],[7,6],[7,8]] 2来自[[1,1],[5,7]]: [[1,1],[1,3],[1,5],[1,7],[2,4],[2,6],[2,8],[3,1],[3,3],[3,5],[3,7],[4,2],[4,4],[4,6],[4,8],[5,1],[5,3],[5,5],[5,7],[6,4],[6,6],[6,8],[7,3],[7,7],[8,4],[8,6],[8,8]] 0来自[[3,4]]: [[3,4]]

25
解析我的世界语!
世界著名的构造语言世界语使用拉丁字母(有关详细信息,请参见链接的维基百科页面)。但是,有些字符带有重音:characters,ĉ,ĥ,ĵ,ŝ和ŭ。(C抑扬音,g抑扬音,h抑扬音,j抑扬音,s抑扬音和超音。)自然地,这些字符很难键入。即使是这个问题,我也必须在Unicode选择器中搜索字符。因此,已经开发了使用字母“ x”的约定以用于电子用途。例如,“ cxu”用于“ĉu”。(注意:世界语字母通常不使用字母“ x”。” 但是,我是一个语言纯粹主义者!这个“空中报价” *胡说八道杀了我!我需要一个程序来解决此问题,最好尽可能短,以便可以尽快将其输入到我的终端中! 挑战 您的任务是使用x约定获取一串世界语,并将其转换为真实的世界语。 实际上,您必须映射: cx: ĉ gx: ĝ hx: ĥ jx: ĵ sx: ŝ ux: ŭ Cx: Ĉ Gx: Ĝ Hx: Ĥ Jx: Ĵ Sx: Ŝ Ux: Ŭ 所有其他可打印的ASCII字符都应被接受并且不能更改。Unicode会很好,但不是必需的。 输入和输出可以采用适合您的语言的任何格式。祝好运! 测试用例 "input" : "output" _____________ "gxi estas varma" : "ĝi estas varma" "Cxu sxi sxatas …

12
删除不明确的复数!
编程非常严格。您不能告诉程序“输出香蕉计数”,而必须告诉它print(bananas)。 但是,当您这样做时,最终会遇到一个问题:您不知道事先拥有多少个香蕉,因此您不知道是否使用复数。 有时,程序员会走懒惰的路。他们只检查而不是检查there are X banana(s)。 但这很丑陋,因此我们需要一个程序来解决此问题。 方法) 要删除字符串中的歧义复数,请执行以下步骤: 将空格上的字符串分成单词列表。 对于以结尾的每个单词(s),请执行以下操作: 如果前面的字是a,an,1或one,除去(s)在字的结尾。 否则,如果该字是第一个字在字符串中或前述字不是a,an,1或one,替换(s)在与字的末尾s。 将单词列表重新组合成一个字符串,以保留原始空格。 例子) 让我们来一个字符串there's a banana(s) and three apple(s)。 首先,我们将字符串分成单词列表: ["there's", "a", "banana(s)", "and", "three", "apple(s)"] 第二步,我们使用两个以(s):banana(s)和结尾的单词apple(s)。 之前的单词banana(s)是a,因此我们删除了(s)它banana。这个词之前apple(s)是three的,所以我们改(s)到s,因此变得apples。 我们现在有["there's", "a", "banana", "and", "three", "apples"]。将列表重新加入,我们得到there's a banana and three apples。这是我们的最终结果。 挑战 创建一个程序或函数,该程序或函数采用任意合理格式的模糊字符串,并返回该字符串的明确版本。 您可以假定该字符串不包含任何换行符,制表符或回车符。 我忘了指定是否对空间或空间(即,是否组织分裂了okay then两个空格应该是["okay", "then"]或["okay", "", "then"]张贴的挑战时,那么你可以假设分裂两种形式)。 测试用例) …
21 code-golf  string 

15
扩展数组
给定两个正整数p和q,您的任务是返回通过应用以下算法创建的数组A: 以A = [p,q]和d = 2开头 对于每一对(X,Y)中的连续号码的甲,其总和为整除d,插入(X + Y)/ d之间X和ÿ。 如果找到至少一对匹配的对,则增加d并继续执行步骤#2。否则,停止并返回一个。 例 以下是p = 1和q = 21时的详细过程。 1 21 | Iteration #1: we start with d = 2 and A = [1, 21] \/ | 1 + 21 is divisible by 2 -> we insert 11 22/2=11 | | 1 …

13
矩阵排名第一吗?
给定一个整数矩阵,测试它是否为秩一,这意味着每一行都是同一向量的倍数。例如,在 2 0 -20 10 -3 0 30 -15 0 0 0 0 每行是的倍数1 0 -10 5。 相同的定义也适用于列代替行。另外,如果矩阵像一个乘法表,则它是排名第一的矩阵: * 1 0 -10 5 ---------------- 2 | 2 0 -20 10 -3 | -3 0 30 -15 0 | 0 0 0 0 我们已经分配了行标签r[i]和列标签,c[j]因此每个矩阵条目M[i][j]都是对应标签的乘积M[i][j] = r[i] * c[j]。 输入: 整数矩阵作为您选择的2D容器。例如,列表列表,2D数组或类似列表。除非数组格式要求,否则不应将width或height作为附加输入。 矩阵可以是非正方形的。它将至少有一个非零条目-您不必处理空矩阵或零矩阵。 …

12
让我们做Diet Haskell
Haskell有可以写成的元组 (a,b,c) 但这只是语法糖 (,,)a b c 在一般的Ñ元组可以与形成n-1个 , S之间(... )接着它的元素用空格分开。例如7元组(1,2,3,4,5,6,7)可以由 (,,,,,,)1 2 3 4 5 6 7 由于Haskell没有1元组,因此无法形成它们。您也不会对空元组负责。 嵌套元组可以使用括号来覆盖操作顺序。 ((1,2),3) == (,)((,)1 2)3 作为我们从Haskell删除所有语法糖的追求的一部分, 我要请您编写一个程序,从Haskell的元组中删除语法糖。 您的程序应采用一个元组,一个数组或一个表示含糖元组的字符串,并应输出一个表示“无糖”元组的字符串。输入元组将只包含正整数或其他元组。 由于我们在这里打高尔夫球,您的输出应该很短。它不应包含不必要的内容 空格。空格仅应用于分隔元组函数的参数,并且不应出现在a )或a之后( 括号。仅在形成元组函数或嵌套元组时才应使用括号。 这是一个代码问题,因此答案将以字节计分,而字节数越少越好。 测试用例 (1,2) -> (,)1 2 (1,2,3) -> (,,)1 2 3 ((1,2),3) -> (,)((,)1 2)3 (1,2,3,4) -> (,,,)1 2 3 …

22
从弦上雕刻一个正方形
今天的挑战是采用多行字符串,并输出包含左上角的字符串中包含的最大平方。 方串是其中的一个: 每行字符数相同 每行上的字符数等于行数。 考虑以下可能的输入字符串: abcde fgh asdf foobar 您可以从中获得的包含第一个字符(a左上角的)的最大正方形是: abc fgh asd 不能有一个边长为4的正方形,因为第二行不够长。现在考虑以下潜在输入: a bcd edf ghi 这里最大的广场就是a。底部形成的3x3正方形不包含第一个字符,也不计数。 这里还有一些测试用例: a a abc def gh ab de ab cd ab cd abcde fghij klm no abc fgh klm a b a 您可能需要通过选择LF,CR或CRLF来分隔输入。 换行符不视为行长度的一部分。 您可能需要在输入中包含或不包含尾随换行符,这不会算作附加行。 输入是字符串或一维char数组;它不是字符串列表。 您可以假设输入为非空且所有行均为非空,并且它仅包含可打印的ASCII,包括空格和换行符(用于行定界符),但不包含制表符。 这是代码高尔夫球,最少字节获胜!
21 code-golf  string 

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.