Questions tagged «code-golf»

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

11
古老的爱尔兰祝福
我不知道是谁创造了这些词,而且我不是爱尔兰人,但我给您带来爱尔兰祝福: May the road rise up to meet you May the wind be always at your back May the sun shine warm upon your face The rains fall soft upon your fields And until we meet again May God hold you in the hollow of His hand 我本打算从现在起几周后发布此消息,但我突然意识到昨天是圣帕特里克节。 规则: 准确产生以上文字。 …

9
曼彻斯特编码数据流
曼彻斯特编码是一种用于无线电通信的电信协议,该协议可确保按固定间隔进行位转换,因此接收器可以从数据本身中恢复时钟速率。它使比特率翻倍,但价格便宜且易于实现。它被业余无线电运营商广泛使用。 这个概念非常简单:在硬件级别,时钟和数据线只是简单地异或在一起。在软件中,这被描述为将位的输入流转换为双倍速率的输出流,每个输入“ 1”转换为“ 01”,每个输入“ 0”转换为“ 10”。 这是一个容易解决的问题,但由于其比特流的性质,因此对许多实现开放。即,编码在概念上是逐位处理而不是逐字节处理。因此,我们都同意字节序,输入的最低有效位成为输出的最低有效字节。 打高尔夫球的时间!编写一个函数,给定任意长度的字节数组,该函数返回该曼彻斯特编码数据的数组。 在位流中,应将输入和输出视为低位字节序,最低有效字节在前,最低有效BIT在前。 ASCII位流图: bit # 5 4 3 2 1 0 5 4 3 2 1 0 IN ------- 1 0 1 0 1 1 ---> [manchester encoder] --- 01 10 01 10 01 01 ----> OUT 例子: Example 1 (hex): LSB MSB …
14 code-golf  binary 

6
打印数字三角波
给定波形的幅度和周期,打印波形。有关更多详细信息,请参见示例输出。波形总数等于周期,每个波形的高度等于振幅。幅度和周期小于10。您可以忽略尾随空格,但不能忽略前导空格。 Sample Input 3 2 Sample Output 3 3 232 232 12321 12321 12321 12321 232 232 3 3

12
下2月29日的星期几
编写一个带有日期并返回该日期之后的下一个2月29日的星期几的函数。 输入是ISO扩展格式的字符串:YYYY-MM-DD(例如,2010年5月27日为“ 2010-05-27”)。 输出是一个字符串,它是星期几的名称(例如“ Monday”)。大写字母无关紧要,但是请使用英文全名。 如果给定的日期是2月29日,则返回下一个 2月29日的星期几。 使用Proleptic Gregorian Calendar的计算(因此,它使用整个公历的Gregorian year年计算)。不用担心朱利安日历或何时从朱利安切换为公历。只要为所有事情假设格里高利安。 该功能至少应在“ 0001-01-01”至“ 2100-01-01”范围内工作。 可以随意使用您选择的语言提供的任何标准库,但不要使用第三方库,除非您希望将该代码包含在解决方案中。 最短的代码(最少的字符)获胜。 例子: func("0001-01-01") -> "Sunday" func("1899-12-03") -> "Monday" func("1970-01-01") -> "Tuesday" func("1999-07-06") -> "Tuesday" func("2003-05-22") -> "Sunday" func("2011-02-17") -> "Wednesday" func("2100-01-01") -> "Friday" (而且,您不必命名该函数func) 提示: 请记住,以00结尾的年份不能被400整除,这并不是leap年。 0001年1月1日为星期一。
14 code-golf  date 

4
免费提供打高尔夫球的书籍吗?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 2年前关闭。 您是否可以推荐任何关于代码高尔夫的免费书籍,特别是Java和C ++?
14 code-golf  tips 

20
随机骰子小费
在标准骰子(骰子)中,数字的排列方式是使相对的面数增加到七个。用您喜欢的语言编写最短的程序,该程序输出一个随机抛出,然后输出9个随机小费。翻斗是骰子的四分之一转,例如,如果骰子面向5,则所有可能的翻斗都是1,3,4和6。 所需输出示例: 1532131356

2
测试给定数字是否是吸血鬼数字
编辑:为了增加复杂性,我为挑战添加了更多内容。 在数学中,吸血鬼数(或真正的吸血鬼数)是一个复合自然数v,具有偶数个数字n,可以分解为两个整数x和y,每个整数具有n / 2个数字,而不能同时带有尾随零,其中v精确地包含x和y的所有数字(以任意顺序计数)。x和y称为the牙。 有关吸血鬼编号的更多信息 伪吸血鬼数 伪吸血鬼编号与吸血鬼编号相似,只不过n位伪吸血鬼编号的尖牙不必具有n / 2位数字的长度。伪吸血鬼数字可以具有奇数个数字,例如126 = 6×21。 输入值 从命令行或标准输入接受数字 输出量 “ 1260 = 21 * 60” (如果数字是吸血鬼,则以较小的毒牙开头。) “ 1261不是吸血鬼编号。” (如果该号码不是吸血鬼号码) “ 126 = 6 * 21”。(如果该号码是伪吸血鬼号码) 编辑:如果数字有多个毒牙,则显示它。 x = fang1a * fang1b = fang2a * fang2b
14 code-golf  math 

23
字符串中整数的总和,用非数字(例如“ a”和“ Y”)分隔
创建一个程序,该程序将在字符串中找到的所有整数求和,该字符串在程序中设置为变量(因此,该程序不必处理任何输入)。整数用非数字分隔(0、1、2、3 ... 9以外的任何数字)。 例子: e7rde f ,fe 43 jfj 54f4sD = 7 + 43 + 54 + 4 = 108 5 = 5 64 545,5445-32JIFk0ddk = 64 + 545 + 5445 + 32 + 0 = 6086 0ab0 = 0 + 0 = 0 额外说明: Unicode支持不是必需的,但允许 -n(其中,n是一个整数)的不计数为负n,但作为一个连字符,接着n。 答案可能会打印在屏幕上(但不是必需的)。 最短答案(以字符为单位)获胜。
14 code-golf  string 

11
输出不同因子长方体
输出不同因子长方体 今天的任务非常简单:给定一个正整数,输出可通过其因子形成的每个长方体的代表。 说明 长方体的体积是其三个边长的乘积。例如,第4卷,其边长是整数可以具有侧面的长方体[1, 1, 4],[1, 2, 2],[1, 4, 1],[2, 1, 2],[2, 2, 1],或[4, 1, 1]。但是,其中一些代表相同的长方体:例如[1, 1, 4]和[4, 1, 1]旋转相同的长方体。只有两个不同的长方体,分别是体积4和整数边:[1, 1, 4]和[1, 2, 2]。输出可以是第一个长方体的任何表示形式,也可以是第二个长方体的任何表示形式。 输入值 程序必须采用一个正整数1≤n≤231−11≤n≤231−11 \le n \le 2^{31}−1。 输出量 您将需要以列表或任何其他可接受的方式输出所有可能的长方体。例如 Input Output 1 [[1, 1, 1]] 2 [[1, 1, 2]] 3 [[1, 1, 3]] 4 [[1, 1, 4], …

3
是将死吗?
鉴于网站上存在大量的国际象棋难题,这完全尚未发布,对此他感到十分惊讶。当我自己想到这个时,应该感谢Anush 于三月份将其发布到沙箱中。但是我认为已经足够长的时间可以自己进行了。 一个将死的棋是在国王被攻击,也没有动,可以保卫它的位置。如果您不熟悉棋子的移动方式,可以在Wikipedia上熟悉一下自己。 挑战 对于这个挑战,您的输入将是您喜欢的任何符号的棋盘位置。为了明确起见,您的输入将描述棋盘上的棋子,棋子的颜色和位置,以及可能的被动捕捉方块(如果有)。(城堡的能力无关紧要,因为您不能超越城堡。)您可能会发现FEN标记很有用,但是任何方便的格式都可以。为简单起见,您可以假设玩的是Black玩家 -这意味着Black永远是被淘汰的玩家。怀特处于支票,将军或僵局的职位将被视为对此挑战无效。 如果该位置是将死,则必须输出一个真实值,如果不是,则必须输出一个虚假值。请注意,僵局不是将军 -国王必须受到攻击! 真实的测试案例 1k5R / 6R1 / 8/8/8/8 / 6K1 b-- rn2r1k1 ​​/ pp1p1pQp / 3p4 / 1b1n4 / 1P2P3 / 2B5 / P5PP / R3K2R b-- kr5R / rB6 / 8/8/8 / 5Q2 / 6K1 / R7 b-- 2K5 / 1B6 / 8/8/8 …

28
从两根弦注入到一根弦
挑战 编写一个应用内射函数的程序,该函数将一对有序的字符串作为输入,一个字符串作为输出。换句话说,每个输入必须映射到唯一的输出。 细节 该输入可以是任何任意长度的两个字符串,但将仅由可打印的ASCII字符(码)。[ 32 ,126 ][32,126][32, 126] 同样,输出字符串没有长度限制,但必须仅由可打印的ASCII字符组成。 如果您的语言无法处理任意长度的字符串,则该程序理论上仅可用于任何大小的字符串。 从输入到输出的映射在程序执行之间应保持一致。否则,您使用的映射完全取决于您,只要是注入即可。 输入是有序的。如果两个输入字符串不同,则它们应产生与被交换时不同的输出。s ≠ t⟹F(s ,t )≠ f(t ,s )s≠t⟹f(s,t)≠f(t,s)s \neq t \implies f(s, t) \neq f(t, s) 并非每个字符串都必须是可能的输出。 每种语言中最短的答案将获胜! 测试用例 以下输入均应导致不同的输出。为避免混淆,字符串被双音节(«»)包围,并用单个空格分隔。 “你好,世界” «lelho»«拖网» «差异»«_rent» “不一样” «代码»«高尔夫» «公司»«高尔夫» «CodeGolf»«» «»«» «»«» «»«» «»«» «»«» «abc”,»«def» «abc»«,“ def» «abc'»«'def» «abc'»«'def» «\»«“» «\\»«\“»
14 code-golf  string 

14
爱尔兰快照:变体规则
介绍 最近,我和我的几个朋友决定玩几张纸牌,其中之一推荐了游戏“爱尔兰快拍”,这就是挑战的灵感来源。但是,我后来了解到,游戏具有许多不同的规则供您使用,此处列出了其中的一些规则 。当前未在该页面上列出面临该挑战的规则,因此名称为“变体规则” 挑战 给定由3张牌组成的数组,请根据在爱尔兰快速抽奖游戏中是否进行有效快速抽奖来输出真值或虚假值。 输入值 输入将是3个数字的数组,范围从1-13(含1-13),其中1代表王牌,11代表杰克,12代表皇后,13代表国王。输入可以是上,中,下的任何顺序。 规则 卡牌是否能使爱尔兰人抢购的4个不同标准是: 顶卡和中间卡相同 顶部和中间的牌相差一 顶部和底部卡片相同 顶部和底部的卡相差一 如果满足任何这些条件,则必须输出真实值。除此之外,对于两个要求纸牌相差一的标准,它会“环绕”,这意味着王牌和国王被认为相差一,反之亦然。 测试用例 Input (Bottom, Middle, Top) -> Output 1 13 7 -> False 1 4 13 -> True 9 3 6 -> False 8 9 7 -> True 2 6 5 -> True 12 5 11 -> …

2
玩井字游戏,永不丢失
(存在一些挑战,需要使用最佳策略,但在这里我们不需要。即使您能够获胜,也可以平局) 挑战 编写一个玩井字游戏的程序。它一定不能输(因此,应该以平局或获胜结束游戏)。 允许的I / O方法 输入可能是当前板。您可以假设第二个玩家的所有先前举动都是由您的引擎进行的。 输入的内容可能是第一个玩家的举动,而您的函数将存储过去发生过的举动。在这种情况下,该函数被多次调用,每次移动一次。或多次输入功能/程序提示。 允许您输入额外的信息,例如您是第一位玩家,还是编写两个(可能是相关的)函数来解决第一位玩家和第二位玩家的问题。如果程序需要使用输入法2(多次调用),则可以决定在第一次调用中传递了什么。 轮到您后,输出可能是板。 输出可能是您的举动。 移动可以表示为一对数字(可以是0索引或1索引),0到8范围内的数字或1到9范围内的数字。 木板可以表示为3×3数组或长度为9的数组。即使语言具有0索引数组,也可以使用1索引。 网格上的细胞可以使用任何3个不同的值,以指示X,O并清空。 获奖标准 每种语言中最短的代码将获胜。

5
单词扑克,谁赢?
输入将是两个五个字母的单词。实际上,它们不一定是字典单词,每个单词只需要五个字母(全部小写或全部大写)即可。输入的单词中只会出现AZ,并且长度始终为5个字符。 您的程序是对他们都打分,就像他们是扑克手一样,并输出较高的手牌。当然,西装不会在这里适用,仅适用于排名,因此不会出现同花顺。 典型的扑克排名系统为:“ 1对”,“ 2对”,“ 3类”,“直发”,“满屋”,“ 4类”,“ 5类”,当然这只手(或本例中的单词)可能一文不值。 如果是平局,则认为字母A较接近,因此一对As胜过一对B。在某些情况下,两只手可能是相同的,但顺序不同(或不相同),在这种情况下,输出的要么是手,要么是手的替代版本。 该外部页面包含有关如何识别获胜者的信息,特别是解决特定排名中的平局的情况,以防您不熟悉如何得分。 如果是直线,则字母必须在字母表中相邻,并且不能环绕。因此,“ defgh”在任何顺序上都是直的,“ xyzab”则不是。 如何单手得分的示例: word | scored as --------------------- ccccc | 5 of a kind <-- highest ranking woooo | 4 of a kind opopo | full house vurst | straight vovvu | 3 of a kind ppoww | 2 …
14 code-golf  string 

8
我的货源井井有条,是您的吗?
您面临的挑战是编写一个程序,函数等,以计算所传递的字符串是否“按顺序”。这意味着字符串的字符具有从最小到最大的顺序的字符代码。最小的字符代码必须是第一个。我的意思是最低的unicode代码点到最高的。使用哪种代码页都没有关系。 如果输入是“按顺序”,则必须返回一个值,否则输入另一个值。这些值必须是不同的,但是对输出值没有其他限制。例如,你可以打印/返回/输出true的!1AQaq¡±(按顺序),并false为aq!QA。这两个不同的值不必是真实的或虚假的或类似的东西,只需两个不同的值即可。重复的字符串(例如aa)是按顺序排列的。 您只需要支持unicode U+007E(~)(ASCII 126) 但是,程序的字符本身必须是有序的。祝你好运,打高尔夫球!

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.