Questions tagged «code-golf»

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

15
西班牙车牌游戏
这个问题是基于我用西班牙语问的一个问题。是的,我要求使用西班牙语的算法。:) 在西班牙,当前的车牌具有以下模式: 1234 XYZ 其中XYZ是从全套西班牙辅音中选取的三个辅音(我认为“Ñ”除外)。 有时候,和我妻子一起旅行时,我们会玩游戏。当我们看到一个车牌时,我们将其三个辅音词拼成一个单词,其中包含这三个辅音词,其顺序与车牌中的顺序相同。示例(西班牙语): BCD BoCaDo (valid) CaBezaDa (not valid) FTL FaTaL (valid) FLeTar (not valid) FTR FleTaR (valid, wins) caFeTeRa (valid, loses) 如上一个示例所示,获胜者是使用最少字符的人。 挑战 编写最短的程序或函数,该程序或函数接收单词列表和一组三个辅音,并在包含相同顺序的三个辅音的列表中找到最短的单词。就本游戏而言,大小写无关紧要。 单词列表(第一个参数)的输入将是您的语言string类型的数组。第二个参数(三个辅音)将是另一个string。如果对您的语言更好,请string与三个辅音一起放在整个参数列表的最后一项。输出将是另一个string。 单词列表中的单词不会被发明,也不会是无限的单词,它们会出现在任何标准词典中。如果需要限制,请假设单词列表中的单词长度不能超过50个字符。 如果有多个长度相同的单词可能是有效答案,则可以返回其中任何一个。只要确保您只返回一个单词,或者如果没有单词匹配三个辅音的模式,则返回一个空字符串。 您可以在组中重复辅音,因此三个辅音的有效输入均为FLR和GGG。 西班牙辅音与英语完全相同,但加了“Ñ”。元音与重读元音的附加词相同:“áéíóúü”。不会有其他类型的标记,例如“-”或“'”。 您可以假设单词列表和三个辅音的大小写始终相同。 如果要使用西班牙语单词的真实集合来测试算法,则可以从Dropbox下载一百万个单词以上的文件(15.9 MB)。 测试用例 Input: 'psr', {'hola' 'repasar' 'pasarais' 'de' 'caída' 'pequeñísimo' 'agüeros'} Output: 'repasar' Input: 'dsd', …

30
创建一个棋盘格矩阵
以一个正整数n作为输入,并输出一个由1和0组成的n × n棋盘矩阵。 左上角的数字应始终为1。 测试用例: n = 1 1 n = 2 1 0 0 1 n = 3 1 0 1 0 1 0 1 0 1 n = 4 1 0 1 0 0 1 0 1 1 0 1 0 0 1 0 1 输入和输出格式是可选的。接受将矩阵输出为列表列表。

21
按频率分组列表
给定一个整数列表,将最先出现的元素分组,然后再分组第二个,依此类推,直到列表中的每个唯一元素都被分组了一次。 例子: 输入: [1,2,3] 输出: [[1,2,3]] 输入: [1,1,1,2,2,3,3,4,5,6] 输出: [[1],[2,3],[4,5,6]] 输入: [1,1,1,4,5,6,6,6,7,7,8,8,8,8,8,8,8,9,5,6,5,6,5,6,5,6,-56] 输出: [[6, 8],[5],[1],[7],[9,4,-56]] 输入: [] 输出: [] 输入: (empty input) 输出: ERROR/Undefined/Doesn't matter 规则 分组必须从最大频率到最小频率。 分组的内部顺序是任意的(例如,EG示例3可以具有[8,6])。 这是代码高尔夫球,最低字节数获胜。 有关 按频率降序对列表的不同元素进行排序

30
几号?
挑战 奇怪的是,这还没有完成:输出当前日期。 规则 您应遵循的日期格式如下: YYYY-MM-DD 如果月份和日期小于10,则该月份和日期应以零填充。 例如,如果程序在2017年5月24日运行,则应输出 2017-05-24 该日期可以始终为UTC或本地日期。 您必须应对leap年。例如,在leap年中,二月有29天,但在正常年份中有28天。 获奖 以字节为单位的最短代码获胜。
26 code-golf  date 

7
挥旗
像这样一个标志: ----------------------------- | | | | | | |=============+=============| | | | | | | ----------------------------- 和一个数字输入:“波长” 假设波长为5。然后,从头开始沿行每5个字符替换下一个字符a -,\并将其后的所有字符向下移动一行。重复此操作直到结束。您最终得到: -----\ | -----\ | -----\ |===== | -----\ | ====== | ----- | ==+=== | -----\ | ====== | -----\ | ====| -----\ | -----\ | ----- 如果您最终无法沿整个波长移动,则标记结束。保持平直直到结束。 您可以假定所有行的长度均相同,并且顶行和底行全部由-(0x2D)组成,其余字符位于!"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~或为空格()。(因此,它的ascii值为x,其中31 < x …

8
呃,我在哪里?
不好了!我被困在一个大森林里(好吧,不是真的,只是假设一下),我不知道我在哪里! 幸好我带了笔记本电脑。但是,当我搜索“地图”时,它说“没有结果”,我是最后一招。 请制作一个以任何两个数字格式输出我的位置的经度和纬度的程序。any two number format包括: 一个元组。 包含经度和纬度的字符串。 JSON对象。 等等.. 可以使用任何API或库。也就是说,您可以查询Google Maps等。(我想,他们并没有废弃他们的API:\)
26 code-golf 

30
我的号码多久?
挑战 给定一个整数,Q范围为-(2^100) ≤ Q ≤ 2^100,输出该数字的位数(以10为底)。 规则 是的,您可以将数字作为字符串并找到其长度。 允许所有数学函数。 您可以使用任何底数作为输入,但是输出必须是以10为底的数字的长度。 不要将负号计为负数。该数字永远不会有小数点。 零可以是一位或零位。 假设输入将始终是有效整数。 例子 Input > Output -45 > 2 12548026 > 8 33107638153846291829 > 20 -20000 > 5 0 > 1 or 0 获奖 以字节为单位的最短代码获胜。

9
GCD / LCM多色!
您面临的挑战是制作一个程序或函数,以一种语言输出其输入的GCD并以另一种语言输出其输入的LCM。允许但不鼓励使用GCD或LCM(我在看着您,Mathematica)的内建函数。将有2个输入,这些输入将始终为正整数,且不得大于1000。 测试用例 每行是一个测试用例,格式为x y => GCD(x,y) LCM(x,y): 1 1 => 1 1 1 2 => 1 2 4 1 => 1 4 3 4 => 1 12 7 5 => 1 35 18 15 => 3 90 23 23 => 23 23 999 1000 => 1 999000 1000 999 => …

30
减号,加号,时间,幂?
这是我不久前在我们的聊天室The Ninteenth Byte中发布的CMC(聊天迷你挑战)。 挑战 给定一个正整数x,取决于的最后2位x,请执行以下操作: x & 3 == 0: 0 x & 3 == 1: x + x x & 3 == 2: x * x x & 3 == 3: x ^ x (exponentiation) 输入输出 Single Integer -> Single Integer 输出中允许尾随换行符。不允许其他空格。 测试用例 input output 1 2 2 4 …
26 code-golf  math 

28
划船划船
每个人都可能熟悉以下歌曲,这是一场音乐比赛: 背景 更少的人可能会想起尝试和几个朋友一起唱这首4人版本的歌,但失败了。抵消具有不同音调的歌曲的歌词被称为唱“回合”,这就是我们今天要使用静态输出来模拟的内容。这是某人实际表演作品的示例(链接到音频/视频,将有声音)。 挑战 面临的挑战是要完全按照以下内容输出文本: Row, row, row your boat, |-----------------------------------|-----------------------------------|----------------------------------- Gently down the stream. |Row, row, row your boat, |-----------------------------------|----------------------------------- Merrily, merrily, merrily, merrily,|Gently down the stream. |Row, row, row your boat, |----------------------------------- Life is but a dream. |Merrily, merrily, merrily, merrily,|Gently down the stream. |Row, row, row your …

7
一种表达,多种价值
使用我们熟悉的数学符号:+,x,括号和任何有理数,可以轻松创建计算为某个所需数的表达式。例如:1+(2x3)=7,(1+2)+(3x6.5)=22.5依此类推。无聊。 在此挑战中,我们将使用一个新的运算符:±。采用±在表达方式,你需要通过更换来计算表达式±用的+或-在所有可能的方式,并返回集合中的所有可能的值。例如: 1±2±3 = {-4,0,2,6}因为1±2±3可以是,和中的任何一个1+2+3,并且它们的值分别是。 1+2-31-2+31-2-36,0,2,-4 (±2)x(2±3) = {-10,-2,2,10} 由于类似的原因。 现在,事实证明,给定任意一组不同的实数,就可以创建一个表达式+,x,(,),±,和实数计算结果为给定的。 任务 你的任务是写一个程序或功能在您所选择的语言,这需要一个序列(列表/阵列/任何方便的格式)的整数,并输出表达式(作为字符串)包括+,x,(,),±,和有理数计算得出给定数字的集合。 请注意,确切的字符±无关紧要;您可以使用您选择的任何其他字符,只要它可以与您使用的其他字符区分开即可。但是您必须在提交中提及正在使用的字符。 输入允许由所用有理数的十进制近似值(最高合理精度)组成。 输入和输出可以采用任何标准方式进行。 禁止出现标准漏洞。 您可以假设给定的整数将是不同的,并以递增的顺序提供。 输出中可能包含空格和换行符。 获奖标准 这是代码高尔夫球,因此以字节为单位的最短代码获胜。 例子 输入| 可能的输出 ------------- + ----------------------------- [1,2,3] | 2±0.5±0.5 [-7,-3,1,21] | (1±2)x(3±4) 想法来自城镇锦标赛,2015年秋季。

11
曼哈顿三角距离
规则网格上的曼哈顿距离是一个人需要一个正交的步数才能到达另一个单元。正交步是穿过网格单元边缘的步(相对于拐角,这会给我们切比雪夫距离)。 我们可以在其他网格(例如三角形网格)上定义相似的距离。我们可以使用以下索引方案寻址网格中的各个单元,其中每个单元包含一x,y对: ____________________________________... /\ /\ /\ /\ /\ / \ 1,0/ \ 3,0/ \ 5,0/ \ 7,0/ \ / 0,0\ / 2,0\ / 4,0\ / 6,0\ / 8,0\ /______\/______\/______\/______\/______\... \ /\ /\ /\ /\ / \ 0,1/ \ 2,1/ \ 4,1/ \ 6,1/ \ 8,1/ \ / 1,1\ / 3,1\ …

25
鸽子洞原理和代码高尔夫
该鸽巢原理指出, 如果将N个项目放入M盒中,且N > M,则至少一个盒子必须包含一个以上的项目。 对于许多人来说,与其他数学运算相比,该原理具有特殊的地位。正如EW Dijkstra 写道, 它被一些神秘感所包围。使用它的证明通常被认为是特殊的东西,特别是巧妙的东西。 挑战 这项挑战的目的是使用ASCII艺术表示法来说明鸽洞原理。特别: 以输入N(项目数)和M(框数)N为正和非负M。N可能小于M(即使该原则在这种情况下不适用)。 随机选择可能的项目分配到框之一。每个分配都应具有非零的被选概率。 生成分配的ASCII艺术作品表示,如下所示: 有几M行,每行对应一个框。 每行以非空白字符开头,例如|。 在该字符之后是另一个非空白字符,例如#,与该框中的项目重复的次数很多。 例如考虑N = 8,M = 5。如果项盒中的所选赋值是4,1,0,3,0,表示是 |#### |# | |### | 相同程序的不同运行(导致不同的分配)可能会导致 |# |## |# |# |### 表示有一些灵活性;见下文。 具体规则 该代码应理论上任何值运行的N和M。实际上,它可能受内存大小或数据类型限制的限制。 由于观察输出不足以确定所有赋值是否具有非零概率,因此每个提交都应说明代码如何实现(如果不是很明显)。 允许以下表示形式的变化: 可以选择任何一对不同的非空白字符。它们在程序执行之间必须保持一致。 表示形式可以旋转90度。同样,选择必须是一致的。 允许尾随空格或前导空格。 以具有不同表示形式的示例为例,对于N = 15,M = 6该程序两次执行的结果可能是 VVVVVV @@@@@@ @@ @@@ @ …

24
当整数加入队列时
介绍 甲队列是其中元件被抽象数据类型加入到前面(排队)和除去从背面(出列)。这也称为FIFO(先进先出)原则。 最好用一个示例显示: 挑战 给定一个非空数组,该数组包含正整数和表示出队(删除元素)的元素,请输出队列的最终列表。 假设X在此示例中表示出队。让我们看一下以下列表: [45, X, X, 37, 20, X, 97, X, 85] 可以将其转换为以下队列伪代码: Queue Enqueue 45 -> 45 Dequeue -> Dequeue -> (dequeue on an empty queue is a no-op) Enqueue 37 -> 37 Enqueue 20 -> 20 37 Dequeue -> 20 Enqueue 97 -> 97 20 …

18
缩写数组
目标: 给定一个字符串数组,为每个字符串创建缩写版本。 规格: 对于此挑战,缩写是字符串的前N个字符。对于字符串abc:a,ab和abc都是有效的缩写,而bc和ac则不是。 给定一个字符串数组,我们想找到最短的缩写集,这样在给定输入和任何缩写的情况下,您可以确定缩写所指的输入项。 例: 输入: ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday"] 从第一个字符串开始,我们一直在处理字符串。 星期一只是带有的项目字符串M,因此,最短的缩写是M。 星期二从开始T,星期四也是如此。这意味着我们尝试使用字符串TU。由于没有其他字符串以此开头,因此我们使用TU。 星期三是W,星期四是Th,星期五是F。 更多示例: Input: "one,two,three,four,five,six,seven" Output: "o,tw,th,fo,fi,si,se" Input: "red,orange,yellow,green,blue,purple" Output: "r,o,y,g,b,p" Input: "a,ab,abc" Output: Not valid! No abbreviation for `a` that doesn't apply to the other items. 笔记: 您可以通过任何合理的方式进行输入和输出。 您可以假设输入将始终是有效的字符串数组。 您可以假定总会有一个解决方案,这与上一个测试用例不同。 字符串仅包含可打印的ASCII(或编码中的可打印字符) 这是代码高尔夫,所以最少的字节会赢!
26 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.