Questions tagged «code-golf»

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

30
邻居总数
这应该是一个相当简单的挑战。 对于数字数组,生成一个数组,其中对于每个元素,所有相邻元素都添加到自身,然后返回该数组的总和。 这是在输入数组上发生的转换 [1,2,3,4,5] [1,2,3,4,5] => [1+2, 2+1+3, 3+2+4, 4+3+5, 5+4] => [3,6,9,12,9] => 39 0 => neighbours of item 0, including item 0 [1,2] => 1 + 2 => 3 1 [1,2,3] => 1 + 2 + 3 => 6 2 [2,3,4] => 2 + 3 + 4 => …
22 code-golf 

10
将字母滚动成螺旋形
编写一个程序或函数,如果给出n,将打印一个螺旋n字符,该螺旋字符由拉丁字母组成,并ABCDEFGHIJKLMNOPQRSTUVWXYZ根据需要重复。此螺旋应仅向前穿过字母。 与字母螺旋有关,尽管螺旋向前和向后贯穿字母,并且螺旋是恒定的。 测试用例 4 AB DC 40 UVWXYZ TGHIJA NSFABKB MREDCLC LQPONMD KJIHGFE 0 10 GHIJ FAB EDC 1000 UVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZ TGHIJKLMNOPQRSTUVWXYZABCDEFGHIJA SFABCDEFGHIJKLMNOPQRSTUVWXYZABKB REZCDEFGHIJKLMNOPQRSTUVWXYZABCLC QDYBMNOPQRSTUVWXYZABCDEFGHIJCDMD PCXALEFGHIJKLMNOPQRSTUVWXYZKDENE OBWZKDEFGHIJKLMNOPQRSTUVWXALEFOF NAVYJCDMNOPQRSTUVWXYZABCDYBMFGPG MZUXIBCLCDEFGHIJKLMNOPQREZCNGHQH LYTWHABKBABCDEFGHIJKLMNSFADOHIRI KXSVGZAJAZGHIJKLMNOPQROTGBEPIJSJ JWRUFYZIZYFUVWXYZABCDSPUHCFQJKTK IVQTEXYHYXETQRSTUVWXETQVIDGRKLUL HUPSDWXGXWDSPUVWXYZYFURWJEHSLMVM GTORCVWFWVCROTGHIJAZGVSXKFITMNWN FSNQBUVEVUBQNSFABKBAHWTYLGJUNOXO ERMPATUDUTAPMREDCLCBIXUZMHKVOPYP DQLOZSTCTSZOLQPONMDCJYVANILWPQZQ CPKNYRSBSRYNKJIHGFEDKZWBOJMXQRAR BOJMXQRARQXMLKJIHGFELAXCPKNYRSBS ANILWPQZQPWVUTSRQPONMBYDQLOZSTCT ZMHKVOPYPONMLKJIHGFEDCZERMPATUDU YLGJUNOXONMLKJIHGFEDCBAFSNQBUVEV XKFITMNWVUTSRQPONMLKJIHGTORCVWFW WJEHSLMLKJIHGFEDCBAZYXWVUPSDWXGX VIDGRKJIHGFEDCBAZYXWVUTSRQTEXYHY UHCFQPONMLKJIHGFEDCBAZYXWVUFYZIZ TGBEDCBAZYXWVUTSRQPONMLKJIHGZAJA SFAZYXWVUTSRQPONMLKJIHGFEDCBABKB REDCBAZYXWVUTSRQPONMLKJIHGFEDCLC QPONMLKJIHGFEDCBAZYXWVUTSRQPONMD …
22 code-golf  string 

19
帮助:外星人程序员只能说ASCII
设置场景: 这是一个平均的下午,在忙碌了一天之后,您会通过参加自己喜欢的消遣来放松:回答有关PPCG的许多令人着迷的问题。今天对您而言不是好日子;那些该死的Pyth程序员不断获得最佳答案,这正在杀死您的氛围。突然,您发现一个新问题已发布!你下定决心;这次不是CJammers。奇怪的是,您开始打字,产生了一系列字符。最终产品将成为辉煌的BrainFuck循环的胎儿。您键入并键入。快点!还快!您太专心了,甚至没有注意到屏幕上的灯光开始闪烁。突然,显示器发出绿色光,桌面上印有外星人般的符号。使用无可挑剔的技能,您cat ~/Desktop/aliensymbol并得到一堆数字,一条消息!作为您精明的PPCG程序员,您会注意到它看起来像ASCII。无论您是什么,您都可以print(chr(i) for i in file)解密消息。您首先想到的是:“我需要与社区分享!”。 ... 谁会想到的?最早接触外星人的人将是PPCG谦虚的程序员。为什么是我们?也许是因为我们是人类智慧的缩影。也许是因为BrainFuck与我们使用外语差不多。尽管如此,外星人-他们是超智能的生活形式-想要测试他们是否应该将人类归类为聪明人。为了检验我们的智力,外星人要求我们向他们发送一些计算机程序,以证明我们在技术上得到了培养。问题是,他们唯一能理解的人类语言是数字ASCII! 帮助人类向那些生物展示真正的智力阿尔法。我们需要向他们发送一个脚本,该脚本会将基于文本的源代码转换为数字ASCII版本。不幸的是,由于我们的技术不发达(感谢奥巴马),我们必须发送尽可能小的翻译程序。他们选择联系PPCG的好事! 挑战: 挑战的前提很简单:您将编写一个程序,该程序将使用任何程序的源代码(或与此相关的任何常规文本文件),并在每行下方输出带有ASCII转换的空格分隔版本。也就是说,给定一个文本文件的输入,您需要输出该文件的每一行,然后输出一行,该行包含其上方一行中每个字符的ASCII表示(每个数字与其所表示的字符对齐)。 一个例子将大大阐明这一点。以臭名昭著的源代码hello world作为输入: #include <stdio.h> int main() { printf("hello, world\n"); return 0; } 您的程序应输出: # i n c l u d e < s t d i o . h > 35 105 110 99 108 117 100 101 …

26
紧密的词
介绍 根据Rand Al'Thor在《 Puzzling SE》中的帖子,紧密结合的单词是包含三个字母连续字母(任意顺序)的任何单词。 像教育,雾角和歌舞表演之类的词都被认为是紧密结合的词,而学习,克拉克森和表演等词则不是紧密结合的词。 挑战 面临的挑战是对一个程序进行代码处理,使其能够将单个单词作为输入(假设所有目的和目的都为小写),并返回列出所有连续字母集(如果有的话)的输出(如果有的话)。是紧密词,如果不是紧密词,则输出为空。 例子 Input: education Output: cde Input: foghorn Output: fgh Input: cabaret Output: abc Input: hijacking Output: ghi, hij, ijk Input: pneumonia Output: mno, nop Input: klaxon Output: <<no output>> Input: perform Output: <<no output>> Input: learning Output: <<no output>> 规则 尽管将输入假定为单个小写单词,而将输出假定为小写,但是输出的性质将根据您选择的编码语言而有所不同。请选择最适合挑战性质的输出形式,无论是STDOUT,文件输出,数组等。 因为这是代码高尔夫,所以肯定会有最少的字节数。 …
22 code-golf  string 

14
黄金周三
黄金周三 您的任务是计算在特定年份的每月黄金时段的星期三的数量。例如,7-13-16是黄金周三。为了保持一致性,请对所有日期使用公历。 输入项 您的程序/功能的输入将是一年(例如2016),并且很灵活。年将是一个介于1912和2233之间的整数。 输出量 输出也很灵活,应为黄金周三的数量(例如18)。 计分 这是代码高尔夫球,因此以字节为单位的最短代码胜出! 测试用例 输入- >输出 -------------------- 1912 - > 19 1914 - > 16 1984 - > 17 1996 - > 19 2063 - > 19 2150 - > 16 2199 - > 18 2233- > 18

3
证明我是错的!
介绍 您的人生使命很简单:在互联网上证明人们做错了! 为此,您通常会仔细分析他们的陈述并指出他们之间的矛盾。 现在该使它自动化了,但是由于我们很懒惰,所以我们希望以最小的努力(最短代码)证明人们是错误的。 规格 输入项 您的输入将是合取范式的公式。对于格式,可以根据您的语言需要使用以下格式或定义自己的格式(不过,您可以使用的格式编码不能超过纯CNF)。但是,测试用例(此处)以以下格式提供(尽管生成您自己的用例并不难)。 您的输入将是一个变量列表的列表(您也可以将其读为字符串/需要字符串)。输入是合取范式(CNF)的公式,写为一组子句,每个子句都是两个列表的列表。子句中的第一个列表对正文字(变量)进行编码,第二个列表对负(负)文字(变量)进行编码。子句中的每个变量都进行“或”运算,所有子句都进行“与”运算。 更清楚地说:[[[A,B],[C]],[[C,A],[B]],[[B],[A]]]可以理解为: (A OR B OR (NOT C)) AND (C OR A OR (NOT B)) AND (B OR (NOT A)) 输出量 输出为布尔值,例如某个真实值或一些虚假值。 该怎么办? 很简单:检查手头给出的公式是否可以满足要求,例如,是否对所有变量都分配了true和false,以便整个公式得出“ true”。如果公式可满足要求,则输出将为“ true”,否则为“ false”。 事实:在一般情况下,这是一个NP完全问题。 注意:允许生成真值表并检查结果是否为真。 角落案例 如果您得到一个空的3级列表,则该子句中没有这样的(正/负)变量-有效输入。 如果需要,可以保留其他不确定的情况。 您也可以在公式为空(一级列表)时返回true,在子句为空(二级列表)时返回false。 谁赢? 这是代码高尔夫球,因此最短的答案以字节为单位! 标准规则当然适用。 测试用例 [[[P],[Q,R]],[[Q,R],[P]],[[Q],[P,R]]] -> true [[[],[P]],[[S],[]],[[R],[P]],[[U],[Q]],[[X],[R]],[[Q],[S]],[[],[P,U]],[[W],[Q,U]]] -> true …
22 code-golf  math  logic 

10
这个正方形对称吗?
写一个程序或函数,它在一个4×4栅格的文本组成的正好是4 A的,4 B'S,4 C's和4 D的,如: ACDC BBCA BADD ABCD 所述ABCD的可以是任何布置,但总是会有各自的4。您可以假定输入有效。如果需要,您还可以假定它具有尾随换行符和/或它按阅读顺序排成一行,例如ACDCBBCABADDABCD。如果需要,您也可以分别ABCD用0123或替换字符1234(仅此而已)。 如果文本网格具有任何形式的反射对称或旋转对称,则输出真实值。特别: 如果有一条中心水平对称线。例如 BACD BACD BACD \___ bottom mirrors top BACD / 如果有一条中心垂直对称线。例如 BCCB DAAD CAAC BDDB \/___ right mirrors left 如果有对角线对称线(在任一方向上)。例如 ___ diagonally mirrored / ABDC BACD DCAB CDBA \___ diagonally mirrored 如果存在90°旋转对称性。例如 BDAB ACCD same if rotated 90 degrees …

24
排序乐队名称
挑战说明 你有许多乐队,每个都有一个名字录制了许多歌曲音乐库,如Queen,Aerosmith,Sunny Day Real Estate,The Strokes。当音频播放器按乐队名称按字母顺序显示您的音乐库时,通常会跳过该The部分,因为许多乐队名称都以开头The,从而更容易浏览媒体集。在此挑战中,给定一个字符串列表(数组),您需要以这种方式对其进行排序(即,省略The名称开头的单词)。您可以编写方法或完整的工作程序。 样本输入/输出 [Queen, Aerosmith, Sunny Day Real Estate, The Strokes] -> [Aerosmith, Queen, The Strokes, Sunny Day Real Estate] [The Ramones, The Cure, The Pixies, The Roots, The Animals, Enrique Iglesias] -> [The Animals, The Cure, Enrique Iglesias, The Pixies, The Ramones, The Roots] [The …

18
高尔夫找到无聊的数字
如果一个整数中有一个数字/数字序列连续重复(您将理解为什么我说“连续”)5次或更多次,我们称其为“无聊”。 例如,“ 11111无聊”而12345不是“ 无聊” 。 使用说明 以整数作为输入 如果整数无聊,则输出真值;如果整数无聊,则输出假值。 例 11111=> true或1(1重复5次) 12345=> false或0 1112111=> false或0 4242424242=> true或1(42次重复5次) -11111=> true或1 3452514263534543543543543543876514264527473275=> true或1(543重复5次) 如果您使用其他类型的“真”和“假”,请指定它。 规则 基本的代码高尔夫球规则适用。 祝好运!
22 code-golf  number 

20
反转并减去
挑战说明 让我们取一个正整数n,反转其数字以获得rev(n)并获得这两个数字之差的绝对值:(|n - rev(n)|或abs(n - rev(n)))。 例: n = 5067 rev(n) = 7605 |n - rev(n)| = |5067 - 7605| = |-2538| = 2538 重复多次此操作后,大多数数字将变为 0(从而终止循环)... 5067 -> 2538 -> 5814 -> 1629 -> 7632 -> 5265 -> 360 -> 297 -> 495 -> 99 -> 0 ...虽然有些数字(例如 1584)陷入了无限循环: 1584 …

12
多项式感知
给定两个f,g整数的任意多项式的多项式,您的程序/函数应评估第二个多项式中的第一个多项式。f(g(x))(又名两个多项式的合成 (fog)(x)) 细节 允许内置。您可以假定任何合理的格式作为输入/输出,但是输入和输出格式应该匹配。例如格式化为字符串 x^2+3x+5 或作为系数列表: [1,3,5] or alternatively [5,3,1] 此外,可以假定输入多项式被完全展开,并且期望输出也被完全展开。 例子 A(x) = x^2 + 3x + 5, B(y) = y+1 A(B(y)) = (y+1)^2 + 3(y+1) + 5 = y^2 + 5y + 9 A(x) = x^6 + x^2 + 1, B(y) = y^2 - y A(B(y))= y^12 - …

5
换向27个功能
介绍 让我们将三元函数定义为从三元素集S = {0,1,2}到其自身的函数:它与的S另一个元素的每个元素相关联S。三元函数的一个示例f是 f(0) = 0; f(1) = 2; f(2) = 0 共有27种不同的三元函数,我们用0到26之间的整数表示它们:函数f编码为f(0) + 3*f(1) + 9*f(2)。上面的示例函数被编码为数字6。 我们可以应用两种三元功能f和g顺序,如果f(g(k)) == g(f(k))适用于所有k在S,那么功能上下班。您的任务是验证是否是这种情况。 输入项 您的输入是两个整数,范围从0到26。它们表示两个三元函数,f并且g。输入必须采用十进制,二进制或一元(1s的字符串)格式。 输出量 如果和,您的输出是真实值fg下班,。您可能不认为输入是有序的。 例子 考虑输入5和16。它们对三元函数进行编码 f(0) = 2; f(1) = 1; f(2) = 0 g(0) = 1; g(1) = 2; g(2) = 1 我们有f(g(1)) == f(2) == 0和g(f(1)) …

2
在2D地牢中找到宝藏
您位于一楼的地牢中。有一个被锁着的门保护的宝藏。可以通过找到相应的钥匙来打开门。您的目标是找到通往宝藏的最短路径。 输入项 输入将是代表地牢初始布局的二维网格。 ########### #$ # g# # # #### ###G## # # ####C# #c @ # ########### 这是您:@ 这些是墙壁:# 这是宝藏:$ 锁着的门是大写字母:A... Z 每扇门都有对应的小写字母:a...z 永远存在一个@和一个$。 地牢将始终为矩形。 不能保证地牢的外边缘是一堵墙。这是有效的地牢: $ A## @ a 不能保证宝藏是可以到达的。有些地牢可能无法解决。 可能有些门没有钥匙,并且有些钥匙没有打开任何门。 永远不会有重复的门或钥匙。 输出量 程序应该打印的序列R,L,U,D(或4个其它不同符号)来表示最短可能路径宝。在此,分别RLUD代表右,左,上和下。如果有多个最短路径,则程序只需要打印其中一条即可。 您不能移动到墙上。 您不能移动到地牢边界之外。 您必须先捡起钥匙才能上门。 移至钥匙上进行拾取。 不必打开每一扇门。 如果无法通过有效的移动顺序到达宝库,则您的程序必须终止而不打印任何内容。(允许尾随换行符。) 计分 这是代码高尔夫球,因此具有最低字节数的答案将获胜。 测试用例 每个测试用例的第一行都将具有地牢的高度和宽度,最后一行将具有最佳移动次数的一条可能路径。 1 2 @$ R …

15
计算N的分区
您的挑战很简单:给定一个整数N,输出每个总和为N的正整数列表。例如,如果输入为5,则应输出 [1, 1, 1, 1, 1] [1, 1, 1, 2] [1, 1, 3] [1, 2, 2] [1, 4] [2, 3] [5] 这些列表不必以任何特定顺序输出,每个列表中的数字也不必。例如,这也是'5'的可接受输出: [1, 1, 1, 2] [5] [3, 1, 1] [2, 1, 2] [4, 1] [1, 1, 1, 1, 1] [2, 3] 您可以放心地假设输入将是一个正整数,并且您可以采用任何合理的格式使用此数字。 您不得使用任何内置函数来执行此操作。 如果您的程序失败或对于N而言花费的时间太长,这可以,但是您至少必须为前15个产生正确的输出。 存在标准漏洞,最短的答案以字节为单位! 测试IO 1: [[1]] 2: …

6
古西班牙字母顺序
在1994年之前,西班牙词典使用字母顺序排列,具有特殊性:有向图ll,ch被认为是单字母。ch立即跟进c,并ll立即跟进l。添加以西班牙语开头的字母ñ,n则顺序为: a, b, c, ch, d, e, f, g, h, i, j, k, l, ll, m, n, ñ, o, p, q, r, s, t, u, v, w, x, y, z 自1994年以来ll,并ch被认为是(两个字母组l,l并且c,h分别地),并且因此按字母顺序相同的英文字母的例外ñ。 旧的命令肯定会更有趣。 挑战 输入零个或多个单词的列表,然后输出根据旧西班牙字母顺序排序的列表。排序是在单词之间(而不是单词中的字母之间)。也就是说,单词是原子的,并且输出将以可能不同的顺序包含相同的单词。 为了简化,我们不会考虑字母ñ,或重音的元音á,é,í,ó,ú,或大写字母。每个字都是一个或多个字符的序列,取值范围从ASCII 97(a)到ASCII 122(z)。 如果l连续超过两个字母,则应将它们从左到右分组。也就是说,lllis lland then l(不是land then ll)。 输入格式可以是:用空格,换行符或任何方便的字符分隔的单词。您可以选择是否将单词用引号引起来。单词列表或单词数组也是可以接受的。任何合理的格式均有效;只需在答案中说明即可。 以类似的方式,输出将是任何合理的格式(不一定与输入相同)。 打高尔夫,最短的胜利。 测试用例 在以下示例中,单词用空格分隔。第一行输入,第二行输出: llama coche …

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.