编程拼图和代码高尔夫

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

6
2D不等式
目的 给定一个数字网格,填写不等式。 假设条件 网格中的列数和行数相等。 网格的最大大小为12x12。 网格仅由整数0-9组成。 输出中可能包含尾随换行符。 输入内容与下面的内容完全相同,包括空格和换行符。 输入示例 4 2 3 1 6 2 3 1 6 9 2 1 0 2 1 6 示例输出 4>2<3>1 ^ " " " 6>2<3>1 " ^ v " 6<9>2>1 v v v ^ 0<2>1<6 输入样例(2) 1 2 3 4 5 5 4 …
29 code-golf 

15
解串
给定一个字符串切片列表的输入,输出原始字符串。 每个切片将以长度2的列表形式给出,其中包含切片的起始位置(整数≥0)和切片本身。如果您的语言不支持任意类型的数组,则也可以将其作为结构或类似结构,或仅由数字,空格和切片组成的字符串。 每个切片的两个元素的顺序由您决定。此外,如果您选择将切片的表示形式用作长度为2的数组,则可以将输入作为二维数组或单个平面数组。最后,代表位置的整数可以是零索引或一索引(此处所有示例均为零索引)。 输入将始终足以确定直到给定最高位置的整个字符串。也就是说,将没有“漏洞”或“缺口”。因此,输出中不得包含任何多余的尾随或前导字符(典型的可选尾随换行符除外)。输入将始终是一致的,并且没有片段会相互冲突。 因为这是code-golf,所以以字节为单位的最短代码将获胜。 测试用例: In Out ----------------------------------------------------------- [[2, "CG"], [0, "PP"], [1, "PC"]] | PPCG [[0, "foobarbaz"]] | foobarbaz [[0, "foobar"], [6, "baz"]] | foobarbaz [[2, "ob"], [5, "rba"], [0, "fooba"], [8, "z"]] | foobarbaz [[0, "fo"], [0, "fooba"], [0, "foobarbaz"]] | foobarbaz
29 code-golf  string 

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 …

6
那是BS!(纸牌游戏)
BS是一种纸牌游戏,游戏的目标是失去所有卡牌。 一个游戏由四名玩家和一张52张牌组成。每个玩家随机发13张牌。通常,卡片被标记为2-10,王牌,杰克,皇后,国王,但为简单起见,卡片将被标记为0-12(含)之间的数字。尽管玩家手中的卡数是公共信息,但只有玩家知道他手中有哪些特定的卡。 游戏过程如下:第一个玩家将任意数量的标记为0的牌放置到弃牌堆中(请注意,不需要他打出所有标记为0的牌,尽管通常这样做对他来说是最大的利益。 )。他必须至少打一张牌。第二名玩家打出想要标记为1的牌,第三名玩家打出2,依此类推。12之后,它将重置为0。 如果您没有应该玩的纸牌怎么办?请记住,您必须至少玩一张牌-实际上,您可以玩任何想要的牌!(实际上,即使您拥有正确的卡,也可以撒谎并玩另一张卡)。但是,有人可以叫你说“ BS!” 如果那个人是正确的并且你撒谎了,那么你必须把所有的牌都丢进弃牌堆;作为奖励,召唤您的玩家随机将其中一张牌放入弃牌堆。但是,如果原告错了,他必须将所有的牌都放在弃牌堆中。请注意,您不能撒谎打牌的数量。 详细信息: 在游戏开始时,选择了四个随机玩家进行游戏。由于将至少有1000场比赛,因此每个玩家都有机会玩。回合顺序是在游戏开始时随机决定的 如果您退还一张正确的卡和一张错误的卡,则认为该卡是说谎的(即,如果您给了2 s,而您给出了一张2和一张1,那么这就是在说谎) 如果两个或两个以上玩家都同时说BS,则随机选择一个。 您的分数是您赢得比赛的百分比。 最多有1000个回合,其中每个玩家进行一次回合。通常,有人在此之前获胜。如果没有人获胜,则计入总比赛数,但没有人获胜。 规格: 您应该编写一个扩展类Player。它看起来像: package players; import java.util.ArrayList; import java.util.List; import controller.*; public class Player1 extends Player { @Override protected List<Card> requestCards(int card, Controller controller) { Card[] hand = getHand(); List<Card> ret = new ArrayList<Card>(); for (Card c …

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 |--------------------------------------------------------- | * * * * * * #################################| | * * * * * | | * * * * * * | | * * * * * #################################| | * * * * * * | | * * * * * | | * …

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.