编程拼图和代码高尔夫

编程益智爱好者和代码高尔夫球手的问答

30
我发声的速度有多快?
介绍 我的汽车车速表被黑了!它没有显示我开车的速度,而是显示:“ Vroooom!” 请帮助我知道我要走多快。 挑战 接受一个字符串作为输入,并检查它是否与regex相匹配/^[Vv]ro*m!$/m。用英语表示字符串的任何行必须以大写字母或小写字母开头v,然后是小写字母r,然后是任意数量(包括零)的小写字母o,然后是确切的字符串m!。可能还有其他行,但是Vroom字符串必须在其自己的行上。 如果找到匹配项,则必须计算oVroom字符串中的数量并输出。但是,如果找不到匹配项,则应输出否则无法输出的任何默认值(例如-1或空字符串) 提醒事项 I / O采用任何合理的格式 禁止标准漏洞 提交内容可能是完整的程序或功能 输入保证只有1个Vroom字符串 计分 这是code-golf,因此以字节为单位的最短代码获胜。但是,我不会将任何答案标记为已接受。 测试用例 输入项 Vrom! 输出量 1 输入项 vrooooooom! 输出量 7 输入项 Hello, Vroom! 输出量 (none) 输入项 Foo bar boo baz Vrooom! hi 输出量 3 输入项 Vrm!ooo 输出量 (none) 输入项 PPCG puzzlers pie 输出量 (none) 输入项 …

3
Spoonerise单词…用芬兰语
这个挑战基于我在阿尔托大学(Aalto University)上的一门编程课程,并包含来自该课程的测试案例。该材料经许可使用。 两年半前,英语中的尖刺主义面临挑战。但是,在芬兰,勺子主义要复杂得多。 芬兰语中的语 在芬兰语中,元音为aeiouyäö,辅音为bcdfghjklmnpqrstvwxz。(å从技术上讲,这是芬兰语的一部分,但在此不予考虑。) 最基本的竖笛演奏只取每个单词的第一个元音以及它们前面的任何辅音,然后交换各部分: henri kontinen -> konri hentinen tarja halonen -> harja talonen frakki kontti -> kokki frantti ovi kello -> kevi ollo 长元音 有些单词包含两个相同的连续元音。在这种情况下,必须将元音对与另一个单词的第一个元音交换,缩短或延长元音以保持长度不变。 haamu kontti -> koomu hantti kisko kaappi -> kasko kiippi 对于两个不同的连续元音,这不适用于: hauva kontti -> kouva hantti puoskari kontti -> kooskari puntti 同一连续字母中的三个或三个以上不会出现在输入中。 …
19 code-golf  string 

11
插座-插头兼容性
带电子设备旅行总是很有趣,尤其是当您需要适配器充电时。您面临的挑战是通过检查给定的插头是否与给定的插座兼容来使旅行计划变得更加容易。 挑战 给定插头类型和插座类型,返回一个值,该值指示它们是否可以一起工作。 相容性表 Socket Accepted plugs | Plug Accepting Sockets A A | A A, B B A, B | B B C C | C C, D, E, F, H, J, K, L, N, O D C, D, E, F | D D E C, E, F | …

8
螺旋街区
如果我们采用自然数并将它们逆时针滚动成一个螺旋,那么我们将得到以下无限螺旋: ....--57--56 | 36--35--34--33--32--31--30 55 | | | 37 16--15--14--13--12 29 54 | | | | | 38 17 4---3---2 11 28 53 | | | | | | | 39 18 5 0---1 10 27 52 | | | | | | 40 19 6---7---8---9 26 51 | | …

6
绘制ASCII曲折曲线
出于这个问题的目的,一条曲折的曲线是沿着从左到右的大致方向,但是反复使n + 1向左旋转90度,然后使n + 1向右旋转(对于n> 0)。 实际上,曲折本身将具有n片段。 转弯用表示+。 曲折的宽度(两个之间的距离+)在水平线(---)为3,在垂直线(|)为1 以下是大小为n从1到5的曲折曲线的单个段: +-------------------+ | | +---------------+ | +-----------+ | | | | | | | +-----------+ | +-------+ | | | +---+ | | | | | | | | | | | | | | +-------+ | +---+ | | +---+ …

19
反复囚徒困境
挑战状态:公开 评论,打开公关,或者如果我想念你的机器人,对我大喊大叫。 囚徒困境...有三种选择。疯了吧? 这是我们的收益矩阵。玩家A在左侧,B在顶部 A,B| C | N | D ---|---|---|--- C |3,3|4,1|0,5 N |1,4|2,2|3,2 D |5,0|2,3|1,1 收益矩阵经过精心设计,因此对于两个玩家来说始终是最好的合作方式,但是您可以(通常)选择“中立”或“背叛”来获得收益。 这是一些(竞争性)示例机器人。 # turns out if you don't actually have to implement __init__(). TIL! class AllC: def round(self, _): return "C" class AllN: def round(self, _): return "N" class AllD: def round(self, _): …

17
查找前n个弹性数之和
术语 递增数字是一个数字,其中每个数字都大于或等于其左侧的所有数字(例如12239) 递减数是一个数字,其中每个数字均小于或等于其左侧的所有数字(例如95531) 弹性数是任何不增加或减少的数字。由于这需要至少3位数字,因此第一个弹性数字为101 任务 给定整数n大于或等于1,求前n个弹性数之和 规则 这是代码高尔夫球,因此最短字节数的答案将获胜 如果您的语言对整数大小有限制(例如2 ^ 32-1),则n将足够小,以使总和适合整数 输入可以是任何合理的形式(stdin,文件,命令行参数,整数,字符串等) 输出可以是任何合理的形式(stdout,文件,显示数字的图形用户元素等) 测试用例 1 > 101 10 > 1065 44701 > 1096472981
19 code-golf  number 

5
修改过的Boggle Checker,具有修改过的Boggle-able代码
背景 Boggle是一种棋盘游戏,玩家必须在4 x 4的随机字母板上找到英语单词。可以通过依次选择板上的相邻单元来构造单词。(“相邻”表示水平,垂直或对角线相邻。)而且,同一单元格在一个单词中不能多次使用。 以下是示例板: I L A W B N G E I U A O A S R L 在这个棋盘上,BINGO,ORANGE和WEARS是有效的话,但SURGE并RUSSIA没有: SURGE:板上没有相邻的对RG。 RUSSIA:S不能使用两次。 修改后的Boggle是Boggle的修改版,具有以下规则: 电路板尺寸为n-by- n,其中n可以为任何正整数。 每个单元格可以包含0到255之间的任意一个字节。 一个单元可以使用一次以上,但不能连续使用两次。 使用例如板的上方,除BINGO,ORANGE并且WEARS,LANGUAGE成为有效的字符串(因为G在一行被使用两次,而不是两次),但RUSSIA仍然没有(由于SS对)。 这是另一个使用代码片段的示例。该字符串from itertools import*\n可以在以下主板中找到,但不from itertoosl import*还是from itertools import *: f i ' ' s r t m l e o o …

18
跳序列
请考虑以下顺序: 0 1 3 2 5 4 8 6 7 12 9 10 11 17 13 14 15 16 23 ... 看起来没有花样,对吗?运作方式如下。从开始0,跳n整数,n从开始1。那是序列中的下一个数字。然后,附加任何“已跳过”且尚未出现的按升序排列的数字。然后,增加n并从附加的最后一个数字开始跳转。重复此模式。 例如,当我们到达时11,我们在n=5。由于尚未n出现n=6,我们增加到,跳到17,然后追加13 14 15 16。我们的下一个跳跃是n=7,因此序列中的下一个元素是23。 挑战 给定输入x,输出x该序列的第一x项,序列的第一项,或构建该序列的项的无限列表。您可以选择0或1索引。 I / O和规则 输入和输出可以通过任何方便的方法给出。 可以假定输入和输出适合您语言的本机数字类型。 完整的程序或功能都是可以接受的。如果是函数,则可以返回输出而不是打印输出。 禁止出现标准漏洞。 这是代码高尔夫球,因此所有常用的高尔夫规则都适用,并且最短的代码(以字节为单位)获胜。

9
第三弹!
此挑战是2018年4月LotM挑战的一部分 Brain-Flak是一种图灵化的语言,在PPCG上享有很高的声誉。语言的记忆是由两个堆栈组成,而是一个“隐藏”的第三组被发现由瓦é在向导,导致大脑思维,高射炮方案的一些有趣的新方式。 那么,如何给那个可怜的隐藏第三堆栈更多的可见性呢?让我们创建一种语言,使第三个堆栈具有应有的识别力!在这里,我向您介绍Third-Flak。 语言 在Third-Flak中,只有一个堆栈,称为第三堆栈。运营商在他们的脑高射炮做同样的方式在第三堆栈上工作,但这里没有[],{},<>nilads没有{...}单子(所以在第三高射炮程序的唯一受理字符()[]<>)。这是每个运算符的工作(将给出示例,该示例表示第三个堆栈,并带有列表,其中最后一个元素是堆栈的顶部): ()是Third-Flak中唯一的两个字符的运算符。它会将第三个堆栈的顶部加1。例如:[1,2,3]→[1,2,4] (,[,<:未覆盖的前情况下,所有开口括号推0至第三层叠体。例如:[1,2,3]→[1,2,3,0] )从第三个堆栈中弹出两个元素,并推回它们的总和。例如:[1,2,3]→[1,5] ]从第三个堆栈中弹出两个元素,然后推回从第二个元素中减去第一个元素的结果。例如:[1,2,3]→[1,-1] >从第三个堆栈中弹出一个元素。示例[1,2,3]→[1,2] 这是该语言的其他规则: 在执行开始时,第三个堆栈仅包含单个0。 禁止在程序内部为空[]或<>(如果遵循Third-Flak的语义,它们将始终是noop,但实际上它们在Brain-Flak中具有不同的含义,无法在此处重新创建)。 括号总是需要平衡的,除非程序末尾的结尾的括号可能会丢失。例如,[()<(()是一个有效的Third-Flak程序(程序末尾的第三个堆栈为[1,0,1])。 一个程序只能包含六个允许的字符()[]<>。程序保证是非空的。 注意:以前的规则暗示,您不必处理需要从空堆栈中弹出的情况。 挑战 很简单,为Third-Flak写一个解释器。您的程序必须将Third-Flak程序作为输入,并在程序末尾返回第三堆栈的状态作为输出。 您的输出格式是灵活的,只要可以从中明确读取第三个堆栈的状态,并且始终以相同的方式编码相同的数字(这只是一种说法,任何输出格式都不是公然的方式)尝试作弊就可以了)。 您的输出选择可能会限制您可以管理的数字范围,只要这不会使挑战变得微不足道(因为这将是默认漏洞)。 测试用例 对于每个测试用例,第一行是输入,第二行是输出堆栈,用空格分隔的数字列表表示,其中堆栈的顶部是最后一个元素。 [()<(() 0 1 0 1 [((((()()()()())) 0 0 0 5 ((([()][()][()]))) -3 [<<(((()()()())((((( 0 0 0 0 0 4 0 0 0 0 0 [()]<(([()])><[()] -1 0 -1 …

23
相同的数字字母
单词的字母要公平。 他们决定在句子中平均出现相同的次数。 例: Priorities 会变成: Ppprrioooritttieeesss 每个字母出现3次,最常见的字母i出现3次。 只要将重复的字母放在相似字母的旁边,就不要紧了。 即: Pppriooorritttieeesss 可以(“ r”字母) Ppprioororitttieeesss 不好(“ r”字母) 另一个例子: invoice 会变成: innvvooiccee 另一个例子: Remittance Advice 会变成: Rrremmmiitttaannncce Adddvvvice 空格,逗号,问号,引号等不被视为挑战的字母。只需要考虑[a-zA-Z]。只要有足够的空间,字母的顺序就应该保持不变。 字母的大小写无关紧要,大写和小写字母均视为相同的字母。也就是说:Pip具有2个“ P”和1个“ I”,所以它将变为Piip。 不区分大小写的字母可以是任何形式, Piip=piip=piiP=PiiP 这是代码高尔夫

3
交换程序一半以测试除数
四个整数序列 在此挑战中,您将测试正整数的四个不同属性,由以下序列给出。正整数N为 如果N的适当除数之和等于N,则为完美(OEIS A000396)。序列以6,28,496,8128,33550336,8589869056,137438691328,2305843008139952128 ...开始 如果N的除数为N的除数,则可重构(OEIS A033950)。序列以1,2,8,8,9,12,18,24,36,40,56,60,72,80,84,88,96,104,108,128 ...开始 实际(OEIS A005153)中,如果每个整数1≤ķ≤Ñ是一些不同的除数的总和Ñ。序列以1,2,4,4,6,12,12,18,20,24,28,30,32,36,40,42,48,54,56 ...开始 如果每个数字1≤K <N的除数严格小于N,则为高度复合(OEIS A002128)。该序列以1、2、4、6、12、24、36、48、60、120、180、240、360、720、840、1260、1680、2520、5040开头。 四个程序 您的任务是编写四个程序(表示完整程序,函数定义或通过任何标准方法执行I / O的匿名函数)。每个程序应解决这些序列之一的成员资格问题。换句话说,每个程序将以N≥1的正整数作为输入,如果N在序列中,则输出真实值;否则,输出虚假值。您可以假定N在编程语言的标准整数类型的范围内。 程序必须以以下方式关联。有四根弦ABCD,使得 AC 是识别完美数字的程序。 AD 是识别可重构数字的程序。 BC 是识别实际数字的程序。 BD 是识别高度合成数字的程序。 计分 您的分数是字符串的总长度(以字节为单位)ABCD,或者换句话说,是四个程序的总字节数除以2。每种编程语言中得分最低的是获胜者。适用标准代码高尔夫球规则。 例如,如果四个字符串是a{,b{n,+n}和=n}?,然后将四个节目是a{+n},a{=n}?,b{n+n}和b{n=n}?,比分是2 + 3 + 3 + 4 = 12。

1
写一个形状简化器
介绍 我有很多ASCII语言。它们由破折号,管道,Vs,尖号,尖括号,斜线和空格组成。例: /--\ | | | | \--/ 我想像这样侵蚀它们: /\ / \ \ / \/ 所有的角落都变得圆了。一个更复杂的示例: /----\ | \------\ | | | | \------------/ /--\ / \------\ | \ \ / \----------/ 经过另一次侵蚀,它将变成 /\ / \------\ < \ \ / \--------/ 还有一个: /\------\ < \ \ / \------/ 挑战 您面临的挑战是编写一个可以侵蚀一次输入的程序。您可以假设只有一块岩石,并且可以假设它是一个闭环。输入将仅包含字符,/\ …

13
输入您的输入
这有点类似于这个尘土飞扬的条目,但是我希望自己的旋转使它足够独特。找不到能阻止我发布此内容的任何东西,但是外面有很多大海。 无论如何!挑战: 您的代码收到一个字符串。它将其转换为相同字符串的ASCII艺术风格版本,但有一个问题。 输入转换 唯一支持的字符是AZ和0-9 小写字母转换为大写 其他所有内容均被静默删除 人物画 放大字体的每个“像素”都是从输入字符串中绘制的 第n个像素等于输入字符串中的第n个字符。如果n大于输入字符串的长度,请绕回开头 各个字母从左到右,从上到下绘制 随后的字母从上一个字母的下一个位置开始获取其“像素字符”索引(例如,输入长度为10,如果第一个字母有9个像素,则第二个字母的第一个像素将使用第10个输入字符绘制,第二个像素将使用第一个输入字符绘制) 每个字母都绘制在5x5的网格中,并用空格完全填充。您可以在此pastebin中找到要为您预渲染的字体,或者在本帖子中进一步介绍 每个字母都画在同一行上,因此输出中的换行总数为4 每个字母由2列空格分隔 字型 000 0 00 0 0 0 00 0 000 111 1 1 1 11111 2222 2 222 2 22222 3333 3 333 3 3333 44 4 4 44444 4 4 55555 5 5555 5 …

30
确定是还是否?
输入字符串[length 1-20]后,仅包含字符y(是)和n(否),您的程序应输出结果(y或n)。输入示例:yynynynny将输出y。 通过以下方式组合y和n来确定结果: y es和n o等于n o Ÿ ES和ÿ ES等于ÿ ES n o和n o等于y es 如果字符串包含两个以上的字符(可能是...),则计算结果将相同。例子: y es和y es和n o等于n o(因为“否”与第一个“是”到“否”合并,然后不存在且“是”,并且同样的情况再次发生) n o和n o和n o等于 n o(前两个no合并为yes,然后有yes和no left,出现为no) 输入与输出示例: yynynynynyyn = n 提示:请记住,程序运行的字符顺序无关紧要。(例如,您可以从背面读取输入,也可以从后面读取输入,混合字母,对其进行排序,无论如何。最重要的是正确的输出)玩得开心! 获胜标准:这是代码高尔夫球,因此以字节为单位的最短代码获胜。

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.