编程拼图和代码高尔夫

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

14
我应该在哪里放镜子?
这是一面镜子:|。我刚刚发现,如果字符串可以自身镜像,则可以在字符串中间粘贴一个镜像!例如,字符串abccba。如果将其切成两半,则它们是彼此的镜像: abc <--> cba 因此,我们可以在字符串中间插入一个镜像,新字符串为abc|cba。有时,仅字符串的一部分可以自身镜像。例如,字符串“ mirror”。两个r被镜像,但是字符串的其余部分不是。没关系,我们将删除字符串中彼此不镜像的部分,然后得到以下字符串: r|r 某些字符串可以在多个位置进行镜像。例如,“ Hello World,xyzzyx”。我喜欢镜子上反射很多文字,因此您需要找到放置镜子的最佳位置。在这种情况下,您应该输出更长的镜像字符串,就像我们上一个示例一样,删除其他所有内容。该字符串变为: xyz|zyx 有些字符串看起来像它们可以被镜像,但实际上不能。如果字符串无法在任何地方进行镜像,则不应输出任何内容。 挑战: 给定仅包含printable-ascii的字符串,找到放置镜子的最佳位置。换一种说法, 找到最大的等长回文子字符串,然后用竖线字符“ |”输出 在它的中间。 输入长度为1至50个字符。 您可以假定输入将不包含镜像|或换行符。除此之外,所有可打印的ASCII字符都是公平的游戏。如果最长的镜像子字符串绑在两个子字符串之间,则可以选择输出哪个。例如,对于字符串“ abba ollo”,必须输出“ ab | ba”或“ ol | lo”,但是输出哪一个都没有关系。字符串是大小写敏感的,例如,“利群”应该没有输出“AB | BA”,它应该输出空字符串。 样本IO: "Hello World" --> "l|l" "Programming Puzzles and Code-Golf" --> Either "m|m" or "z|z" "abcba" --> "" "Hulluh" --> "ul|lu" "abcdefggfedcba" …

30
查理,奥斯卡,三角洲,回声
无线电通信的重要组成部分是北约语音字母表,该字母表将字母编码为单词,使它们更易于通过通讯理解。您的工作(如果希望接受)是一张一张地打印。 您必须将这个确切的字符串打印到stdout: A: Alfa B: Bravo C: Charlie D: Delta E: Echo F: Foxtrot G: Golf H: Hotel I: India J: Juliet K: Kilo L: Lima M: Mike N: November O: Oscar P: Papa Q: Quebec R: Romeo S: Sierra T: Tango U: Uniform V: Victor W: Whiskey X: Xray …

30
波粒二象性横向编程
编写一个包含非空单行字符串的程序或函数。该字符串将是零个或多个空格,后跟一个句点(一个粒子),例如.或 .,或者该字符串将是一个或多个交替的正斜杠和反斜杠(波形)的序列,该斜杠可以以任意一个开始,例如作为\或/\/或\/\/\/\/\/\/。 无论哪种情况,都将粒子/波向右传播一个单位。 具体来说,在粒子情况下,在之前插入一个空格.,将其向右移动一个位置,然后输出结果字符串。例如: .→交通 . .→交通 . .→交通 . .→交通 . .→交通 . .→交通 . .→交通 . .→交通 . 在wave情况下,附加一个/或\适当的附加值,以使wave保持交替,并且其长度增加一,然后输出结果字符串。例如: /→交通/\ \→交通\/ /\→交通/\/ \/→交通\/\ /\/→交通/\/\ \/\→交通\/\/ /\/\→交通/\/\/ \/\/→交通\/\/\ 无论哪种情况,输出都可能没有尾随空格,但允许使用可选的尾随换行符。 以字节为单位的最短代码获胜。

30
你让我打招呼
任务 读入可能无限的文本流或文件,hello并按照以下规则输出其内容,直到输出单词为止。 一旦hello已输出,您的代码应立即退出。例如,它不应该等待换行符。 您的代码应随其输出。那就是它不应该读入大量的输入然后开始输出。 如果流/文件不包含hello,则您的代码应永远继续输出输入,直到到达流/文件的末尾为止。 这是区分大小写的挑战,因此hello不等于Hello。 您可以假定输入仅包含可打印的ASCII字符和换行符。 您的代码不能期望文本将由换行符终止,或者输入中根本没有换行符。另外,您的代码不能假定它将在具有无限内存的计算机上运行。 您可能假设您的代码将从一个空目录中调用。 输入流示例 I once had a horse called hellopina. 输出量 I once had a horse called hello 小费 运行yes | tr -d \\n | <your program>检查它是否适用于无限流。如果它不打印任何内容和/或泄漏内存,则表明该程序不符合规范。它应该yyyyyyyyyyyyyyyyyyyyyy...永远打印,没有换行符。
30 code-golf  string 

30
ASCII三角形
您的任务是编写一个打印ASCII三角形的程序或函数。他们看起来像这样: |\ | \ | \ ---- 您的程序将采用单个数字输入n,并带有约束0 <= n <= 1000。上面的三角形的值为n=3。 ASCII三角形将具有n反斜杠(\)和竖线(|),n+1线和破折号(-),并且每行除最终行外还将具有等于行号(从0开始,即第一行为行0)的空格。 。 例子: 输入: 4 输出: |\ | \ | \ | \ ----- 输入: 0 输出: 在此测试用例中,输出必须为空。没有空格。 输入: 1 输出: |\ -- 输入和输出必须完全是我指定的方式。 这是代码高尔夫球,因此请争取尽可能短的代码!
30 code-golf  ascii-art  code-golf  rubiks-cube  code-golf  path-finding  maze  regular-expression  code-golf  math  rational-numbers  code-golf  kolmogorov-complexity  graphical-output  code-golf  tips  code-golf  string  permutations  code-golf  sorting  base-conversion  binary  code-golf  tips  basic  code-golf  number  number-theory  fibonacci  code-golf  date  code-golf  restricted-source  quine  file-system  code-golf  code-golf  math  code-golf  ascii-art  code-golf  math  primes  code-golf  code-golf  math  matrix  code-golf  string  math  logic  factorial  code-golf  palindrome  code-golf  quine  stateful  code-golf  interactive  code-golf  board-game  code-golf  math  arithmetic  code-golf  string  code-golf  math  matrix  code-golf  math  abstract-algebra  polynomials  code-golf  date  code-golf  string  array-manipulation  sorting  code-golf  game  code-golf  string  code-golf  ascii-art  decision-problem  code-golf  number  sequence  code-golf  code-golf  code-golf  sequence  fibonacci  code-golf  math  geometry  random  code-golf  code-golf  math  decision-problem  fractal  rational-numbers  code-golf  number  number-theory  code-golf  combinatorics  permutations  card-games  code-golf  math  sequence  array-manipulation  fibonacci  code-golf  sequence  decision-problem  graph-theory  code-golf  ascii-art  parsing  lisp  code-golf  string  math  natural-language  logic  code-golf  math  logic  code-golf  string  alphabet  code-golf  string  code-golf  string 

16
使用单行qwerty键盘的最长单词
三排QWERTY键盘的是qwertyuiop,asdfghjkl和zxcvbnm。您的任务是从给定的单词列表中找到只能使用键盘的一行即可输入的最长单词。 样品输入1 artist home gas writer geology marine twerp 输出量 writer (给定的话,只有gas,writer并且twerp可以使用单个行写入,并且writer是最长的) 这些单词可能不是实际单词(因此,请不要假定第三行无效)。但是,您可以假设始终只有一个答案(不多也不少)。 样品输入2 wrhuji bxnzmmx gllwssjjd vnccbb lrkjhgfdsa tttttt 输出量 bxnzmmx 可以在输入中提供其他标点符号和空格(根据语言要求)。但是,不应提供任何额外的输出。输入和输出均为小写。最短的代码胜出。

3
水最终会到达水箱吗?
在ASCII艺术世界中,有水,哈希墙和字母机制。 您正在由散列墙(#标志)组成的房间中: ####### # # # # # # # ### # # # ####### 您安装了一个S水源(S标牌)和一个E水箱(E标牌),可以从任何方向接收水,但是您只有一个S水源和一个E箱。 ####### # S # # # # # # ### # # E # ####### 因此,您必须明智地选择将源放置在何处。那就是您发挥代码高尔夫技能的地方。 任务 您将获得一个输入,该输入由一个字符串表示,该字符串表示带有房间和水箱的房间: ####### # S # # # # # # ### # # E # ####### 您必须确定水是否最终到达水箱。如果可能,水向下流动,如果可能,则向左和向右流动。水不会积聚,因为它不会上升。 …

12
太棒了...几乎
如果您曾经在数学课上学习过素数,则可能必须要确定一个数是否是素数。当您仍在学习它们时,您可能已经搞砸了,例如,误以为是39。好吧,不用担心,因为39是一个半素数,即它是两个素数的乘积。 类似地,我们可以将k个几乎素数定义为k个素数的乘积。例如,40是第4个4素数;40 = 5 * 2 * 2 * 2,是4个因子的乘积。 你的任务是写一个程序/函数接受两个整数ñ和ķ作为输入和输出/返回ñ个ķ -almost素数。这是一个代码高尔夫球,因此以字节为单位的最短程序获胜。 测试用例 n, k => output n, 1 => the nth prime number 1, 1 => 2 3, 1 => 5 1, 2 => 4 3, 2 => 9 5, 3 => 27 杂 如果存在封闭形式,则您必须通过简单封闭形式以外的任何方式自己生成素数。

30
中位数:平均挑战
给定整数N> = 1,输出从0到N-1的整数的平均位数 规格 可以将输出计算为从0到N-1的每个整数的二进制表示形式的位数之和,再除以N。 在这种情况下,整数的二进制表示形式没有前导零,但零除外,它在二进制形式中表示为0。 输出应准确到至少7个有效数字。 例 N = 6 0: 0 : 1 bit 1: 1 : 1 bit 2: 10 : 2 bits 3: 11 : 2 bits 4: 100 : 3 bits 5: 101 : 3 bits 平均位数=(1 +1 + 2 + 2 + 3 + …

17
维修范围
给定输入的正整数列表,其中一些被替换为0,输出列表,其中包含已更改为0替换的缺失数字。 输入列表的特征: 列表的长度始终至少为2。 让我们将输入列表定义为a,将“原始列表”(即数字替换为0s 之前的列表)定义为b。对于任何一个n,a[n]是b[n]或0。 对于任何一个n,b[n]是b[n-1] + 1或b[n-1] - 1。也就是说,每个索引中的数字b始终会1从其前一个索引开始改变。当然,第一个要素是免除此规则。 对于in中的每一次零运行a(即用替换连续的元素 0),x代表运行开始的索引并y 代表结束,a[x-1]to a[y+1]总是单独增加或单独减少。因此,只有一种可能的方法来填充零。 这也意味着数组的第一个或最后一个元素都不能为零。 用更简单的术语来说,要填充零位,只需将其替换为从前一个数字到后一个数字的范围即可。例如,输入 1 2 0 0 0 6 7 必须输出 1 2 3 4 5 6 7 因为这是code-golf,所以以字节为单位的最短代码将获胜。 测试用例: In Out ----------------------------------------------------- 1 0 0 0 5 6 0 4 0 0 1 | 1 2 …

24
串弦琴
介绍 对于那些不知道的人来说,回文是指字符串等于字符串向后的字符串(插补,空格等除外)。回文的一个例子是: abcdcba 如果您扭转这种情况,最终将得到: abcdcba 都一样 因此,我们称这为回文。为了使事情更平淡,让我们看一个字符串示例: adbcb 这不是回文。为了做到这一点,我们需要将反向字符串合并到初始字符串右侧的初始字符串中,而两个版本均保持不变。越短越好。 我们可以尝试的第一件事如下: adbcb bcbda ^^ ^^ 并非所有字符都匹配,因此这不是反转字符串的正确位置。我们向右走了一步: adbcb bcbda ^^^^ 这也不是所有字符都匹配。我们向右再走一步: adbcb bcbda 这次,所有字符都匹配。我们可以合并两个完整的字符串。最终结果是: adbcbda 这是回文字符串。 任务 给定一个仅包含小写字母的字符串(至少包含一个字符)(如果更合适,则使用大写字母),输出经过palindromized的字符串。 测试用例 Input Output abcb abcba hello hellolleh bonobo bonobonob radar radar hex hexeh 这是代码高尔夫球,因此以最少的字节提交为准!

20
找到并旋转
任务 这是一个简单的挑战。您的输入是一个非空字符串,仅包含数字0123456789和哈希值#。它将仅包含一串数字,该数字编码一个非负整数,并且可以环绕在字符串的末尾,并且至少包含一个#。该整数可能具有前导零。例如##44##,013####并且23###1是有效的投入,同时###,0099并#4#4没有。 您的任务是n从字符串中提取整数,并n向右输出字符串旋转步骤。 例子 输入#1##应向右旋转1步,因此正确的输出为##1#。 输入#026###应向右旋转26步,因为前导0被忽略。正确的输出是26####0。 输入1####2的末尾包含整数21,因此应将其向右旋转21步。正确的输出是##21##。 规则和计分 您可以编写完整的程序或函数。最低字节数获胜,并且不允许出现标准漏洞。 您可以假定数字n适合int您的语言的标准类型。相反,如果该标准int类型实现了任意精度的整数,则(理论上)您必须支持任意大的n。 测试用例 #1## -> ##1# ##4## -> #4### 1####1 -> ####11 1####2 -> ##21## #026### -> 26####0 #000### -> #000### ###82399 -> ##82399# 51379#97 -> #9751379 #98##### -> ###98### #######4## -> #4######## 60752#1183 -> 8360752#11 ####99366800## -> 366800######99 ########9##### -> ###9########## …

25
梯子上的机器人
背景 我有一个倚在墙上的梯子,还有一个可以爬上它的遥控机器人。我可以向机器人发送三个不同的命令: UP:机器人向上走了一步。如果在最高的台阶上,它会跳下,跌落并爆炸。 DOWN:机器人向下走了一步。如果它处于最低位置,则什么也不会发生。 RESET:机器人返回到最低位置。 我还可以发送一系列命令,机器人将一个接一个地执行它们。您的任务是预测其运动。 输入值 您的输入是一个正整数N,代表阶梯中的步数;一个非空字符串Cover UDR,代表我已经发送给机器人的命令。您可以假设N < 1000。机器人在梯子的最低位置初始化。 输出量 可以保证机器人会在某个时候爬上最高的台阶并爆炸。您的输出是在此之前执行的命令数。 例 考虑输入N = 4和C = "UDDUURUUUUUUUDDDD" 所述的机器人,由表示@沿4-阶梯,移动如下: |-| |-| |-| |-| |-| |-| |-| |-| |-| |@| |-|| |-| |-| |-| |-| |-| |@| |-| |-| |@| |-| |-|| |-| |@| |-| |-| |@| |-| |-| |@| …

30
实施接单
介绍和信誉 今天没有花哨的前奏:请实施takewhile。 这种变化(在非平凡的数据结构上)是我大学功能编程课程中的一项作业。这项作业现在已经关闭,并且已经在课堂上进行了讨论,我已经得到了我教授的允许在这里发布(我明确要求过)。 规格 输入值 输入将是一个正整数列表(或您的语言的等效概念)。 输出量 输出应为正整数列表(或您的语言的等效概念)。 该怎么办? 您的任务是使用要takewhile考虑的数字为偶数的谓词来实现(允许使用语言内置函数)(着重于获取时间)。 因此,您从头到尾遍历列表,并且在条件(为偶数)成立的情况下,将其复制到输出列表,并在遇到不符合条件的元素时立即中止操作并输出(下面是一个分步示例)。这种高阶功能也称为takeWhile(takewhile)。 潜在的极端情况 与输入列表相比,输出列表的顺序可能不会更改,例如[14,42,2]可能不会变为[42,14]。 空列表是有效的输入和输出。 谁赢? 这是代码高尔夫球,因此最短的答案以字节为单位! 标准规则当然适用。 测试向量 [14, 42, 2324, 97090, 4080622, 171480372] -> [14, 42, 2324, 97090, 4080622, 171480372] [42, 14, 42, 2324] -> [42, 14, 42, 2324] [7,14,42] -> [] [] -> [] [171480372, 13, 14, 42] …

11
构架这种精美的ASCII艺术
介绍 我认为每个人都同意,精美的图片必须具有良好的框架。但是,本网站上有关ASCII艺术的大多数挑战只是想要原始图片,而不关心它的保存。 如果我们有一个程序采用一些ASCII-Art并将其周围环绕一个漂亮的框架,那岂不是很好吗? 挑战 编写一个程序,将某些ASCII艺术作为输入,然后将其输出,并用漂亮的框架包围。 例: ***** *** * *** ***** 变成 ╔═══════╗ ║*****║ ║***║ ║*║ ║***║ ║*****║ ╚═══════╝ 您必须为框架使用与示例中完全相同的字符: ═ ║ ╔ ╗ ╚ ╝ 框架的顶部和底部将插入到输入的第一行和最后一行之前。 框架的左部分和右部分必须在输入的最宽行上具有精确的一个空格填充。 输出中可能没有前导或尾随空格。只允许尾随换行符。 您可以假定输入没有不必要的前导空格。 您可以假定输入在任何行上都没有尾随空格。 您不必处理空输入。 输入将仅包含可打印的ASCII字符和换行符。 规则 允许功能或完整程序。 输入/输出的默认规则。 有标准漏洞。 这是代码高尔夫球,因此最低字节数获胜。Tiebreaker是较早提交的内容。 编码愉快! 强烈建议使用本网站在任何挑战中产生的出色ASCII艺术,作为程序的输入并以漂亮的框架进行显示!

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.