Questions tagged «code-golf»

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

30
我叫什么名字?
注意:获奖答案将在17年4月12日选定,当前获奖者为Jolf,1个字节。 令我感到惊讶的是,我们在此站点上还没有遇到我的中间名挑战。我做了很多搜索,但一无所获。如果这是一个重复项,请照此标记。 你的挑战 解析一个看起来像的字符串Jo Jean Smith并返回Jean。 测试用例 Input: Samantha Vee Hills Output: Vee Input: Bob Dillinger Output: (empty string or newline) Input: John Jacob Jingleheimer Schmidt Output: Jacob Jingleheimer Input: Jose Mario Carasco-Williams Output: Mario Input: James Alfred Van Allen Output: Alfred Van (从技术上讲,最后一个是不正确的,但是要解决这个问题太难了。) 笔记: 名称将始终至少包含2个以空格分隔的部分,中间没有无限的中间名,或者可以是字符串列表/字符串数组。 名称可能包含字母(不区分大小写)和-(0x2d) 您可以输出尾随换行符。 您可能需要输入才能包含尾随换行符。 允许从STDIN,函数参数或命令行参数输入,但不允许对其进行硬编码。 …
30 code-golf  string 

13
北经北经东南
给定一串N,S,E和W,输出方位角(以度为单位从北方顺时针旋转的角度),精确到小数点后5位。 在传统的指南针表示法中,字符串仅由其中两个字符组成(例如NNW或ESE)。在这里,您还必须接受包含所有4个字符串(例如WNNNSE)。仅使用2个符号即可使人们直观地理解其含义。允许使用4个符号使阅读变得很恐怖,但是允许以较短的方式描述给定精度的轴承。 (正如user2357112的注释中指出的那样,事实证明您可以证明对于任何给定方位,4符号字符串的长度将与2符号字符串的长度完全相同,因此我将这一挑战基于错误的假设。希望这种缺乏实际用途不会损害您对挑战的享受...) 确切的方法如下所述,并且等效于传统的表示法(它在其上进行扩展而不是对其进行更改)。 输入项 输入是仅包含字符的单个字符串NESW。 如果您愿意,输入可以是一个字符序列,前提是该输入不包含任何预处理。例如,[N, [E, [S, [W]]]]不允许使用嵌套列表来帮助处理顺序。 不允许使用其他字符。您不能使用1234代替的字符串NESW。 输出量 输出必须是十进制数字或一的字符串表示形式(不是有理数/分数)。 不需要显示尾随零。如果方位角是9.00000,则输出9也算作正确的小数点后5位。 输出范围为[0,360)。也就是说,包括0但不包括360。 通过将输出四舍五入到小数点后五位来检查正确性。如果轴承为0.000005,则四舍五入为0.00001。输出0.00001和0.000005都是正确的。 对于某些输入,以科学计数法表示的输出是可以接受的。例如,1e-5代替0.00001。 转换次数 单字符罗盘点N,E,S,和W分别对应于0,90,180,以及270度。 将其中之一添加到字符串会导致方位将单个字符的方位和原始弦的方位一分为二。 选择两个可能的平分轴承中最接近的一个,以便NE代表45度,而不是225度。 除了要平分的角度为180度的地方,这是明确的。因此NS,SN,WE,和EW对应于未定义的轴承,以及输入将永远不会在任何这些结束。但是,它们可能会出现在输入字符串的任何其他位置,因为这不会引起歧义。 如果最后两个字符相同,则最后一个字符将是多余的,因为二等分将返回相同的方位。由于这没有为表示法添加任何内容,因此您的代码无需处理。因此NN,EE,SS,和WW对应于未定义的轴承,以及输入将永远不会在任何这些结束。但是,它们可能会出现在输入字符串的其他任何地方。 例子 N: 0 E: 90 S: 180 SE: halfway between S and E: 135 NSE: halfway between N and SE: 67.5 NNSE: halfway between N and NSE: …
30 code-golf 

5
整数,集合!
您的任务是将从1到的整数N(作为输入)组装成一个具有宽度W和高度的矩形H(也作为输入提供)。单个数字可以旋转90度的任意倍数,但是它们必须在矩形中显示为连续的块。也就是说,您不能将其中一个数字分解为多个数字并将这些数字分别放置在矩形中,也不能将数字的三个数字弯曲到一个角上。您可以考虑每个数字都是用来建造墙的砖头。 这是一个例子。说您的输入是(N, W, H) = (12, 5, 3)。一种可能的解决方案是: 18627 21901 53114 为了清楚起见,这里有此网格的两个副本,一个副本隐藏了一位数字,而另一个副本隐藏了两位数字: 1#### #8627 2##01 #19## ##11# 53##4 如果矩形不能以独特的方式再次拆卸,那就很好。例如,在上面的示例中,12也可以这样放置: ##### 18627 21#01 ##9## ##11# 53##4 规则 您可以假定它N是正W*H数,并且与整数从1到N包含在内的位数匹配,并且存在将矩形平铺到给定数字中的情况。我目前尚无证据证明这是否总是可能的,但是如果您愿意,我会对此感兴趣。 输出可以是单个换行符分隔的字符串,也可以是字符串列表(每行一个),也可以是一位整数列表的列表(每个单元格一个)。 提交的结果必须是确定的,并且您应该能够在合理的台式机上在一分钟之内处理所有测试用例。 您可以编写程序或函数,并使用我们的任何标准方法来接收输入和提供输出。 您可以使用任何编程语言,但是请注意,默认情况下,这些漏洞是禁止的。 这是代码高尔夫球,因此以字节为单位的最短有效答案为准。 测试用例 除了第一个,这些都不是唯一的。每个测试用例N W H后面都有一个可能的输出。当矩形太窄而无法水平书写较大的数字时,请确保您的答案有效。 1 1 1 1 6 6 1 536142 6 2 3 16 25 34 …

29
讨厌/爱的难题
挑战说明 在这一挑战中,我们仅将love和hate视为情感。如果我们想表达一种有序的感觉表达N,我们将在这两者之间交替(以开头hate): order | expression 1 I hate it. 2 I hate that I love it. 3 I hate that I love that I hate it. 4 I hate that I love that I hate that I love it. 每个正整数都遵循该模式N。给定N,输出命令的对应感表达N。 笔记 .表达式末尾的句号()是强制性的, 尾随空格和前导空格(包括换行符)是允许的, 非正数或非整数N的输出未定义, 这是一个代码挑战,所以请使您的代码尽可能短!
30 code-golf  string 

22
根据Stern-Brocot序列输出第n个有理数
所述的Stern-Brocot序列是一个Fibonnaci样序列,其可被构造为如下: 用初始化序列 s(1) = s(2) = 1 设置柜台 n = 1 追加s(n) + s(n+1)到序列 追加s(n+1)到序列 递增n,返回到步骤3 这等效于: 除其他特性外,斯特恩-布罗克序列可用于生成每个可能的正有理数。每个有理数将只生成一次,并且始终以最简单的形式出现。例如,1/3是序列中的第4个有理数,但当量数2/6,3/9等等都不会出现。 如上所述,我们可以将第n个有理数定义为r(n) = s(n) / s(n+1),其中s(n)第n个Stern-Brocot数是。 您面临的挑战是编写一个程序或函数,该程序或函数将输出使用Stern-Brocot序列生成的第n个有理数。 上面描述的算法是1索引的;如果您输入的内容是0索引,请在答案中说明 所描述的算法仅用于说明目的,可以按照您喜欢的任何方式(硬编码除外)导出输出 可以通过STDIN,功能参数或任何其他合理的输入机制进行输入 输出可以是STDOUT,控制台,函数返回值或任何其他合理的输出流 输出必须是形式为的字符串a/b,其中a和b是Stern-Brocot序列中的相关条目。不允许在输出之前评估分数。例如,对于input 12,输出应该为2/5,而不是0.4。 不允许出现标准漏洞 这是代码高尔夫球,因此最短答案(以字节为单位)将获胜。 测试用例 这里的测试用例是1索引的。 n r(n) -- ------ 1 1/1 2 1/2 3 2/1 4 1/3 5 3/2 6 2/3 …

29
交错串
灵感。*我不敢相信我们之前没有遇到过这样的挑战: 任务 给定一个或多个可打印的ASCII字符串,通过从每个字符串中取出一个字符来循环插入它们,直到出现字符不足。如果字符串先于其他字符用完,则从此以后跳过该字符串。 例子 SIMPLE 给 SIMPLE POLLS并EPEES给PEOPLELESS LYES并APRONS给LAYPERSONS ABCDE并a c和123 567给Aa1B 2Cc3D E567 "\n$?*和​(空字符串)和,(.)" (尾随空格)给出",\(n.$)?"* (尾随空格) *有较短的APL解决方案。

22
标题大写的经验法则
根据该站点,美国政府印刷办公室样式手册建议的一般规则是 将出版物和文档标题中的所有单词大写,但不包括“一个”,“该”,“在”,“在”,“在”,“在”,“在”,“在”,“在”,“在”,“在”,“或”,“或”和“或”上。 这可能不是正确的,因为我无法在“ 样式手册”中找到这样的建议,但是无论如何,让我们使用此规则。 挑战 给定一个输入字符串,该字符串由用空格分隔的小写单词组成,请根据以下规则输出字符串的大写字母 第一个和最后一个单词大写。 所有其他词大写,除了一,一个,所述,在,通过,用于,在,的,上,到,向上,并且,如,但,或,和也不。 输入字符串将包含至少一个单词,每个单词至少包含一个字母,并且仅包含从a到的字符z。 这是一个代码挑战,因此,请尝试使用您选择的语言使用尽可能少的字节。您可以编写完整的程序或函数来完成任务。 测试用例 "the rule of thumb for title capitalization" -> "The Rule of Thumb for Title Capitalization" "programming puzzles and code golf" -> "Programming Puzzles and Code Golf" "the many uses of the letter a" -> "The Many Uses of the …
30 code-golf  string 

20
从我深奥的代码中解析注释
本周初,我们学习了如何格式化深奥的语言进行评论。今天,我们要做相反的事情。我需要您编写一个程序或函数来解析一些注释良好的深奥代码并解析出注释,仅返回代码。使用上一个挑战中的一些示例,下面是经过注释的代码: a #Explanation of what 'a' does bc #Bc d #d e #Explanation of e fgh #foobar ij #hello world k #etc. l #so on mn #and op #so forth 您需要执行以下操作以提取代码。首先,删除注释字符(#),其前面的空格以及注释字符之后的所有内容。 a bc d e fgh ij k l mn op 然后,将每行向上折叠为单行。例如,由于b是第二列在第二行,我们一旦崩溃起来,这将是上线的第二列一个。同样,c将放在第一行的第三列中,并将d放在第四行中。对每个字符重复此操作,您将得到: abcdefghijklmnop 重要说明:似乎简单的解决方案是删除注释,删除每个空格并加入每一行。这不是有效的方法!因为原始代码中可能有空格,所以使用这种方法会去除它们。例如,这是一个完全有效的输入: hello #Line one #Line two world! …

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 # ####### 您必须确定水是否最终到达水箱。如果可能,水向下流动,如果可能,则向左和向右流动。水不会积聚,因为它不会上升。 …

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.