Questions tagged «code-golf»

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

12
还剩多少水?
在加利福尼亚州,我们正处于干旱之中,因此我们需要知道我们剩下多少水,以便我们可以尽可能多地节约水。 由于水的供应有限,因此您的代码必须尽可能短。 例子 | | | | |~~~| |___| Output: 0.5 |~~~~~| | | | | |_____| Output: 1 | | |__| Output: 0 (or bonus) 规格 输入将仅包含以下所有:|_ ~和换行符。上方的所有内容~均视为空气;_,下方的空间~及其~本身被视为水。剩下的水百分比由电脑计算water / (air + water)。您的输出必须精确到小数点后四位(除非您追求百分比奖金)。输入将始终为矩形。该~会只在同一行,如果任何。如果需要,输入中也可以选择有换行符。 奖金 如果您同时获得这两种奖金,则在-35奖金之前应用-15%的奖金 -35字节奖金:如果您的代码显示“这只干旱的山羊失控”,则在输出为0时而不是0 -15%红利:如果输出百分比。 为此,您需要将小数点位置左移两位,修剪前导零,并%在末尾添加a 。允许零结尾(最大2),只要它们不影响该值即可。0.5->以下任何一项:50.00% 50% 50.0%
29 code-golf 

14
找到动力总成!
获胜者(很明显)是丹尼斯♦,他用十个字节使用了果冻! 这个挑战仍然存在,但是结果将不复存在。 数字的动力总成是约翰·康威(John Conway)的概念(约翰·康威也因制作康威的《人生游戏》而闻名,但这不是重点)。它的定义如下: 对于任何数字...,数字的动力总成是...(即,每第二个数字,从左到右,是该数字之前的数字的幂)。重复此过程,直到结果为一位数字为止。 例子: 2592 => (2^5)(9^2) = 2592 <= Cannot be further decomposed 135 => (1^3)5 = 5 1234 => (1^2)(3^4) = 81 => (8^1) = 8 1100 => (1^1)(0^0) = 1 # (0^0) = 1 -42 => -42 # Negative numbers output the input 对于n输入中的任何数字,您面临的挑战是powertrain(n)(即n在动力总成分解完成之后)返回输出。 这是代码高尔夫,所以最短的字节数获胜。 …
29 code-golf  math 

10
圣诞老人的决定
圣诞老人的决定: 在此挑战中,您将帮助圣诞老人确定名单上的某个人是顽皮还是好人,然后得到coal或toys。 但不幸的是,Santa的组织混乱,在他的某些条目中naughty,nice 和name字段的顺序错误。 输入值 输入将采用以下可互换格式: 该人的名字(只能包含一个冒号a-zA-Z0-9) 这个词naughty后面直接跟一个冒号和一个非负整数,代表圣诞老人抓到你调皮的次数 这个词nice后面直接跟一个冒号和一个非负整数,表示圣诞老人抓住你的好时光的次数 它们之间用单个空格(ASCII 32)隔开。 此外,该名称在名称Santa Claus->的各部分之间将没有空格SantaClaus。 奖金: (25%):他是圣诞老人,所以他需要检查列表两次,并确保没有重复项。(在这种情况下,它只会获得用户拥有的第一个分数) 例: Quill naughty:4 nice:0 naughty:0 Doorknob nice:3 naughty:2 Quill nice:6 nice:3 balpha naughty:3 pops nice:4 naughty:2 输出: 输出应包括: 此人的姓名,后跟: 如果中还有更多要点naughty,则coal: 如果还有更多要点nice,则toys。 但是如果naughty和nice相等,那么needs more data 输出示例: 有组织奖金和重复搬家奖金: Quill coal Doorknob toys balpha needs more data pops …

7
帮助建筑师形象化天际线
作为城市规划项目的一部分,在建筑师的一些建议下,您已经获得了创建程序或功能的任务,该程序或功能将显示城市天际线。该项目仅处于启动阶段,因此非常粗略的草图就足够了。当然,最简单的方法是简单地以ASCII艺术形式绘制天际线。 所有建筑物都将在河边,因此它们全部对齐。建筑师会将每个建筑物的高度作为输入,您的代码应显示天际线。 架构师的输入将是整数或半整数。如果数字是整数,则建筑物将具有平坦的屋顶,而半整数将导致倾斜的屋顶。零将是平坦的地面。建筑物的墙壁相隔3个字符,而零将是单个字符宽。相邻建筑物共用墙壁。 有关输出的详细信息和说明,请查看以下示例: N = 3 ___ | | | | |___| N = 3.5 _ / \ | | | | |___| N = 6 ___ | | | | | | | | | | |___| n = 0 _ 输入示例: 3 3.5 0 2 _ ___ …

20
这一挑战使美分
我知道,标题使您不寒而栗 鉴于货币输出量最少的硬币弥补这一数额 例子 0.1 1 dime 0.01 1 penny 0.28 1 quarter 3 penny 0.56 2 quarter 1 nickel 1 penny 1.43 5 quarter 1 dime 1 nickel 3 penny 规格 一美元兑换100美分。 每种硬币的价值为: penny 1分 nickel 5美分 dime 10美分 quarter 25美分 不允许琐碎此任务的内置。 输入输出 输入的是小数,代表总计的美元价值 无需多元化 顺序:quarter->penny 输出应为 <#_of_coins> <coin type> …
29 code-golf 

30
查找数组中最大和最小的数字
任务 任务很简单。给定仅包含整数和字符串的数组,则输出最大数和最小数。 测试用例 Input: [1, 2, 3, 4, 5, 6, 7, 8] Output: 1, 8 Input: [5, 4, 2, 9, 1, 10, 5] Output: 1, 10 Input: [7, 8, 10, "Hello", 5, 5] Output: 5, 10 字符串中的数字不视为整数: Input: [1, 2, 3, 4, "5"] Output: 1, 4 如果只有一个整数,则它既是最大整数又是最小整数: Input: [1] Output: …

24
非常简单的网格标记
编写一个包含三个正整数W,H和N的程序或函数。打印或返回W的H×H网格,.其中.正常英语阅读顺序中的每N个N均被替换为X。 例如,给定W = 7,H = 3,N = 3,网格的宽度为7个字符,高度为3个,从左上角读取的每三个字符为X: ..X..X. .X..X.. X..X..X 同样,如果输入为W = 10,H = 4,N = 5,则输出为: ....X....X ....X....X ....X....X ....X....X 笔记 “普通英语阅读顺序”是指从上一行到下一行从左到右。 当N为1时,所有.的将成为X。 您可以使用任意两个不同的可打印ASCII字符代替.和X。 如果使用空格( ),则结果在视觉上相同时,不需要尾随空格。(仍然需要空行。) 您可能无法使用其他方式代替形成网格的换行符。 W,H和N的确切输入格式和顺序并不重要。诸如此类的东西[H,W,N]还是N\nW,H可以的。 输出中尾随换行符就可以了。 以字节为单位的最短代码胜出! 例子 W = 5, H = 3, N = 1 XXXXX XXXXX XXXXX W = 5, H = …

1
我的图面是平面吗?
您的任务是确定图形是否为平面。 如果图形可以嵌入到平面中,则该图形是平面的;换句话说,如果可以绘制该图形而没有任何交叉边缘。 输入:您将获得以下格式的无向图: 边缘列表,例如 [(0, 1), (0, 2), (0, 3)] 邻接图,例如 {0: [1, 2, 3], 1:[0], 2:[0], 3:[0]} 相邻矩阵,例如 [[0, 1, 1, 1], [1, 0, 0, 0], [1, 0, 0, 0], [1, 0, 0, 0]] 节点名称可以是数字,字符串或类似名称,但是您选择的格式必须能够支持任意图形。节点名称中没有放置代码。不会有自我循环。 输入的标准选择,包括STDIN,命令行参数和函数参数。 输出:您应该为所有平面图返回一个特定的输出,并为所有非平面图返回一个不同的特定输出。 输出的标准选择,包括STDOUT,函数返回值。 例子: 平面: [] [(0,1), (0,2), (0,3), (0,4), (0,5), (0,6)] [(0,1), (0,2), …

10
括号内为脚注
背景 LISP程序员已经占领了世界!括号已被声明为神圣字符,从现在开始,它们只能在LISP程序中使用。已经决定用脚注代替文学作品中的括号,并且为简化Markdown文本而使它自动化是您的工作。 输入值 您的输入是一个包含字母ASCII字符,空格和特殊字符的字符串,.!?()。它将不包含换行符或数字。括号将正确匹配。 输出量 您应将输入字符串中每对匹配的括号转换为脚注。发生这种情况如下: 将第一个匹配的括号对和括号之间的子字符串替换为一个以数字开头的运行编号,该编号1环绕在Markdown标记<sup>和之间</sup>。 附加到字符串的末尾 两条换行符 Markdown标签<sub>, 步骤1中的数字 空间, 括号之间的子字符串,以及 结束标记</sub>,按此顺序。 如果字符串中仍然有括号,请转到步骤1。 您的输出是结果字符串,可能带有尾随换行符。只要您的输出是正确的,就不必实现此精确算法。请注意,可能会有嵌套的括号;在这种情况下,我们的脚注将包含对其他脚注的引用。括号之间的子字符串也可以为空。有关示例,请参见下面的测试案例。 规则和计分 您可以编写完整的程序或函数。最低字节数获胜,并且不允许出现标准漏洞。 如果你的语言本身不支持十进制数(咳嗽视网膜咳嗽),你可能会在另一个基地,包括二进制或一元的注脚号码; 但是,使用一元数会产生+ 20%的罚款。 测试用例 输入: This input contains no parentheses. 输出: This input contains no parentheses. 输入: This has (some) parentheses (but not so many). 输出: This has <sup>1</sup> parentheses <sup>2</sup>. <sub>1 …

4
2014年永恒-PCG.SE新年拼图2015
因此,现在是2015年,去年难题中的许多答案 现在开始产生无效的输出,是时候来讨论涉及数字2015的问题了。 除了...为什么?如果您对上一年问题的基于日期的答案仍然有效,您是否不喜欢它?我们为什么不更改日历以使其永远不会是 2015年,而我们只是继续生活到2014年,直到永远? 让我们定义一个新的日期符号,称为Eternal 2014符号,如下所示: 对于2014年及之前的日期,该日期将与多长时间公历中的日期相同。 这是多年来2015年及以后的日期,今年将保持到2014年,该月将是这将是,如果在2014年同月周期要继续永远过去一个月12.所以数量2015-02-08会2014-14-08,并且2020-12-31会2014-85-02。请注意,由于2014年不是a年,因此不考虑leap日。 您的任务是构建一个程序或函数,该程序或函数将以朱利安天文数据作为输入,并以Eternal 2014表示法以YYYY-MM-DD或DD/MM/YYYY格式返回一个字符串,该字符串的日期与该朱利安日期相对应。 您可能会假设输入的儒略日始终是1721426(1月1日,1日)至2914695(3268年1月23日,包括)的整数。年份可能包含前导零以填充至4位数字,但月和日必须始终具有前导零以填充至两位数(并且年份可能不包含前导零以填充至除4之外的任何数字)。 以下是所有可接受格式的一些示例输入及其输出: > 1721426 1-01-01 01/01/1 0001-01-01 01/01/0001 > 2086302 999-12-31 31/12/999 0999-12-31 31/12/0999 > 2456659 2014-01-01 01/01/2014 > 2456789 2014-05-11 11/05/2014 > 2457024 2014-13-01 01/13/2014 > 2457389 2014-25-01 01/25/2014 > 2469134 2014-411-07 07/411/2014 > 2567890 2014-3657-29 29/3657/2014 > 2914695 …

16
实施INTERCAL的二元运算符
没有明显首字母缩写的编译器语言,INTERCAL的缩写,是一种非常独特的编程语言。其不可复制的品质包括其二进制运算符。 INTERCAL的两个二进制运算符进行交织(也称为mingle),然后选择。交错表示为变化(¢),选择表示为花样(〜)。 交织通过取0-65535范围内的两个数字并将其位交替来进行。例如: 234 ¢ 4321 234 = 0000011101010 4321 = 1000011100001 Result: 01000000001111110010001001 Output: 16841865 Select的工作方式是取0-65535范围内的两个数字,取第一个操作数中与第二个操作数中1s位置相同的位,并右包装这些位。 2345 ~ 7245 2345 = 0100100101001 7245 = 1110001001101 Taken : 010 0 10 1 Result: 0100101 Output: 37 在此挑战中,将使用交错或选择操作为您提供一个二进制表达式。您必须使用尽可能少的字节来计算结果。 该表达式将以空格分隔的字符串形式给出,该字符串由0-65535中的整数,空格¢或~,空格和0-65535中的整数组成。 输入和输出可以通过任何标准系统(STDIN,功能,命令行等)进行。禁止标准漏洞。 例子: 5 ¢ 6 54 5 ~ 6 2 51234 ¢ …
29 code-golf 

8
打印美国国旗!
今天,您将以特别独立日(美国)为主题的挑战。您必须编写一个程序来打印此美国国旗的ascii艺术表示形式。 0 |--------------------------------------------------------- | * * * * * * #################################| | * * * * * | | * * * * * * | | * * * * * #################################| | * * * * * * | | * * * * * | | * …

30
回文您好,世界
您的任务是创建一个打印“ Greetings,Planet!”的程序。完全在控制台上。看起来很简单,对吧?好吧,这就是窍门。该代码必须是回文,这意味着它从右到左的读取方式与从左到右的读取方式相同。标准的漏洞是不是允许。

13
生成键盘友好号码
最常见的计算机键盘布局具有十进制数字键 1234567890 沿着字母键上方的顶部运行。 设一个十进制数字的邻域为它自己的数字键和左,右数字键(如果存在)的一组数字。 例如,0的邻域是{0, 9},5的邻域是{4, 5, 6}。 现在,将一个键盘友好数字定义为一个正整数(十进制形式,不带前导零),可以在上面的布局中键入该数字,以使第一个数字之后的数字中的每个连续数字都位于前一个数字的附近。 所有一位数字(1-9)都很容易键盘操作。 诸如22321这样的数字是键盘友好的,因为每个数字(不包括第一个数字)都在该数字的附近。 诸如1245之类的数字对键盘不友好,因为4不在2附近(反之亦然)。 诸如109之类的数字不适合键盘输入,因为0不在1附近。其末端不循环。 通过按最小到最大的顺序排列键盘友好数字,我们可以创建一个整数序列。 这是键盘友好数字序列的前200个术语: N KFN(N) 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 10 11 11 12 12 21 13 22 14 23 15 32 16 33 17 …

30
矮胖vs.平滑弦
考虑一个长度为N的字符串,例如Peanut ButterN =13。请注意,该字符串中有N-1对相邻字符。因为Peanut Butter,12对中的第一个是Pe,第二个是ea,最后一个是er。 当两对大多数是不同的字符时,字符串具有粗大的质量,例如chUnky。 当这些对几乎都是相同的字符时,字符串具有平滑的质量,例如sssmmsss。 将字符串的组块性定义为具有两个不同字符的线对数与线对总数(N-1)的比率。 将字符串的平滑度定义为具有两个相同字符的线对数与线对总数(N-1)的比率。 例如,Peanut Butter只有一对具有相同字符(tt)的对,因此其平滑度为1/12或0.0833,而其块状度为11/12或0.9167。 空字符串和仅包含一个字符的字符串被定义为100%平滑和0%厚实。 挑战 编写一个程序,该程序采用任意长度的字符串,并输出其块状或平滑度比率作为浮点值。 通过stdin或命令行获取输入,或者您可以编写一个带有字符串的函数。 您可以假设输入字符串仅包含可打印的ASCII字符(因此为单行)。 将浮点数输出到stdout到小数点后4位或更多位,或者如果编写了函数,则可以选择将其返回。不需要传达任何信息的小数位,例如0可以用代替0.0000。 根据需要选择块状或光滑度。只要确定您的程序输出哪个即可。 以字节为单位的最短代码获胜。 例子 Peanut Butter→粗0.91666666666度:,平滑度:0.08333333333 chUnky→粗1.0度:,平滑度:0.0 sssmmsss→粗0.28571428571度:,平滑度:0.71428571428 999→粗0.0度:,平滑度:1.0 AA→粗0.0度:,平滑度:1.0 Aa→粗1.0度:,平滑度:0.0 !→粗0.0度:,平滑度:1.0 [空字符串]→粗度:0.0,光滑度:1.0 奖金的问题:你更喜欢哪一个,矮胖或平滑的字符串?

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.