Questions tagged «code-golf»

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

6
查找最长的连续数字
简单的挑战:给定一系列正整数,找到数字中包含最长连续数字的数字。俩?允许运行中的数字环绕可能的值(0123456789)并向后运行。因此2345,89012和和5432109都是连续数字的有效游程(但3456765也不行,321090123因为游程必须始终在同一方向,尽管3456765可以将其视为两个游程:34567和765)。如果是平局,则返回第一个。 测试用例: Input: [3274569283, 387652323, 23987654323648, 2345687913624] Output: 23987654323648 (The run is 98765432; run length: 8) Input: [123012363672023, 098761766325432, 15890123456765] Output: 15890123456765 (The run is 8901234567; run length: 10) Input: [43, 19, 456] Output: 456 Input: [5, 9, 0] Output: 5 Input: [71232107, 7012347] Output: 7012347 Input: [1234, 32109876] Output: …

24
过滤掉伪元素!
我们定义一个数组/(数字列表)的超平均数为其前缀之和的算术平均值。 例如,[1, 4, -3, 10]以以下方式计算列表的超平均: 我们得到前缀:[1], [1, 4], [1, 4, -3], [1, 4, -3, 10]。 总计:[1, 5, 2, 12]。 现在获取此列表中元素的算术平均值:(1 + 5 + 2 + 12) / 4 = 5。 甲伪元件的阵列的是一种元素,其值是严格比其超平均水平。因此,我们的例子名单的伪元素1,4和-3。 给定一个浮点数列表,您的任务是返回伪元素列表。 您不必担心浮点数错误。 输入列表永远不会为空,并且可能包含整数和浮点数。如果提及,则整数可以视为浮点数(带有<integer>.0) 您可能会认为数字适合您选择的语言,但请不要以任何方式滥用它。 (可选)您也可以将数组的长度作为输入。 这是代码高尔夫球,因此适用标记的标准规则。以字节为单位的最短代码(每种语言)获胜! 测试用例 输入->输出 [10.3]-> [] [5.4,5.9]-> [5.4,5.9] [1,4,-3,10]-> [1,4,-3] [-300,-20.9,1000]-> [-300,-20.9] [3.3、3.3、3.3、3.3]-> [3.3、3.3、3.3、3.3] [-289.93,912.3,-819.39,1000]-> …

12
十进制的AZ,您知道吗?
作为我先前挑战的跟进,单词数达到20!,我们将再次使用该挑战中的单词列表来执行其他任务。这次,您将专门使用: https://github.com/魔术八爪鱼缸/wordListsByLength/blob/master/10.txt 要选择26个不同的单词,每个单词都以一个唯一的字母开头,并按从A到Z的升序输出。这是一个有效的示例: aardwolves babbitting caravaning debilitate evaporator fantasized geographer hawfinches imbecility juvenility kalanchoes lamaseries malodorous nudibranch oligophagy pantywaist quarreling russetting scantiness teetotaler undercount voodooisms wentletrap xenophobic yeomanries zwitterion 这是一个阿德沃夫,这是一种蜡嘴鸟,这是一个长寿,这是一个裸鳃亚目和海蛳螺科。 规则 不能直接从存储库中读取内容,也不能发现任何其他漏洞。 您可以从链接中选择任何26个单词。 您选择单词,这些是您的程序每次应输出的单词。 必须选择一个以以下每个字母开头的单词: [a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, …

22
实施空白高尔夫球手
某些二维esolang(例如Forked)和某些非eolang(例如Python)有时可能在代码行之前需要空格。这不是高尔夫运动。另外,我很懒,在编写2d lang之前需要很多空格。您的任务是编写一个使这些语言更具特色的工具。 当然,这不是完美的。例如,当数字是源代码行中的第一个字符时,就不能使用它。但是,它通常是有用的。 挑战 您将编写一个程序或函数,该程序或函数可以... ...采用一个参数,文件名或字符串,或者... ...从标准输入中读取。 您的程序的行为类似于cat,除了: 如果任一行的第一个字符是数字,则您的代码将打印x个空格,其中x是该数字。 否则,将仅打印它。 输入中的所有其他字符也一样。 测试用例 输入: foo bar foo bar 1foo bar foo bar foo bar 2foo bar foo bar foo bar foo bar 输出: foo bar foo bar foo bar foo bar foo bar foo bar foo bar foo bar foo bar …

4
和平共处的军队
在国际象棋游戏中,有一个称为“皇后”的棋子可以攻击同一行,同一列或对角线上的任何其他棋子。在国际象棋中通常有黑白两面,每一面都属于其中一队。棋子可能不属于同一支球队。 您的目标是为方形板找出最大的和平共处军队。那是黑色和白色皇后可以装在板上的最大数量,因此没有两个女王可以互相攻击,黑色皇后的数量等于白色皇后的数量。 作为输入,您将收到一个方形板的边长,并应输出可以容纳在该板上的最大的和平共存军队的人数。 这是代码高尔夫球,因此适用标签的标准规则。 OEIS A250000 这些测试用例涵盖了所有已知答案。您的解决方案应该是一个广义的答案,只要有足够的计算能力和时间,就可以为任何输入值计算解决方案。 1:0 2:0 3:1 4:2 5:4 6:5 7:7 8:9 9:12 10:14 11:17 12:21 13:24
15 code-golf  chess 

23
我吃过午饭了吗?
你喜欢午餐。但是,您正在节食,并希望确保自己一天之内不吃午餐两次。因此,您需要制作一个程序来帮助您确定。 但是,一个复杂的问题是您吃午餐的时间很奇怪。午餐时间为MONTH:DAY PM(您可以使用UTC或本地化时区)。没错,如果一天是7月14日,那么您将在7:14 PM吃午餐。 对于您的程序,您需要使用当前日期和时间(不要输入),并且如果您当天已经吃过午餐(或者现在是午餐时间),则需要输出一致的真实值,或者输出一致的虚假值。如果还没有。 示例:(运行程序的时间=>输出) 5月4日上午11:35 =>否(您将在5:04 PM吃午餐) 6月3日下午5:45 =>否(您将在6:03 PM吃午餐) 7月28日晚上8:30 =>正确(您在晚上7:28吃了午餐) 12月15日下午3:25 =>正确(您在12:15 PM吃了午餐) 2月29日下午2:29 =>正确(恰好是午餐时间) 10月12日12:00 AM =>否(一天刚刚开始) 参考: 12小时制的工作原理
15 code-golf  date 

6
让我们做一个三角形
大多数人都熟悉Pascal的三角形。 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 帕斯卡(Pascal)的三角形是一个自动机,其中单元格的值是左上角和右上角的单元格之和。现在我们将定义一个相似的三角形。不仅将单元格带到左上角和右上角,我们还将沿延伸到左上角和右上角的两条无限线来获取所有单元格。就像Pascal的三角形一样,我们从一个1零开始无限填充,然后从那里向下构建。 例如,计算用 x 1 1 1 2 2 2 4 5 5 4 x 我们将对以下单元格求和 . . . 2 . 2 . 5 5 . x 制作我们的新细胞14。 任务 给定一个行号(n),然后计算距左数(r)的距离,并在第n行上从左数计算第r个非零项。(在Pascal三角形上的等效值为nCr)。您可以假设r小于n。 这是代码高尔夫球场,我们的目标是尽量减少解决方案中的字节数。 测试用例 0,0 -> 1 …
15 code-golf  math 

10
最小运营至100
总览 给定一个数字列表,找到最少的运算使100 输入值 一串数字,可以是数字顺序,也可以不是数字顺序。数字的顺序不能更改,但是可以在每个数字之间加上加号(+)或减号(-),以便总和等于100。 输出量 添加的运算符数量,其后是数字和运算符的完整序列。两者可以用空格,制表符或换行符分隔。 例子 有效 输入:123456789 输出:3 123–45–67+89 无效的 输入:123456789 输出:( 6 1+2+34-5+67-8+9 有一些方法可以减少操作次数)

22
将一个数字分配到一个尽可能相等的值列表中,其总和等于该数字
可能是一个简单的代码挑战。给定2个正整数m和n,给出一个n值列表,这些值是总和等于数字的正整数m。输出中的所有值都是相同的值,或者差值恰好是1。 例子 例如 m=6并n=3成为2, 2, 2 m=7并且n=3将成为2, 2, 3或2, 3, 2或 3, 2, 2 m=7并n=2成为3, 4或4, 3 m=7并n=1成为7 m=7并n=8会产生错误,因为8个正整数之和不能为7。 m=10并且n=4将成为3, 3, 2, 2或任何其他排列 规则 输入和输出都仅是正整数。 输出中的所有值都是相同的值,或者差值恰好是1。 列表中值的顺序并不重要。 列表中值的总和等于m。 如果无法解决,则生成错误或错误值(例如,在m = 7和n = 8的情况下)。 由于其他规则,m=8并且n=3会生成3, 3, 2(not 2, 2, 4)的任何排列 获胜者,冠军 这是代码高尔夫球,因此以字节为单位的最短有效答案为准。
15 code-golf  number 

4
骑士填充网格
骑士填充是利用骑士棋子的连通性进行的洪水填充。特别: 1 1 1 1 0 1 1 1 1 (0是初始点,1s表示连接的单元格) 挑战 给定空间和墙壁的2D网格以及初始位置,请对该网格执行骑士填充。最短的代码获胜。 规则 您可以采用任何喜欢的格式(图像,字符串,数组等)输入并产生输出。您可以将初始位置作为输入网格的一部分或作为单独的坐标。为了便于说明,将使用以下格式: ######## # = wall ######## x = initial location ## x ## ## ## ######## ## ## ######## ######## 输出是输入栅格的副本,其中添加了骑士填充结果 您的填充不得与空间或墙壁使用相同的“颜色”,而应与初始位置标记相同。例如,给定上面的图像,有效的输出将是: ######## # = wall ######## @ = fill (could also have been x) ## …

6
过去的今天
所述Discordian日历是由Discordians使用的备选的日历。 Discordian年有5个季节,每个季节持续73天:混乱,不和谐,混乱,官僚主义和余波。 Discordian星期有5天:Sweetmorn,Boomtime,Pungenday,Prickle-Prickle和Setting Orange。每年从Sweetmorn(以及Chaos)开始。 每˚F ourth年(其中Happe的ñ s到格雷格对准Ø日安飞跃啊[R S),一个额外d AY插入混沌59和60混沌之间称为圣提布节。它不在Discordian周内,这意味着St. Tib's Day之后的第二天将设置为Orange,即Prickle-Prickle的前一天。 公历和Discordian日历排成一行;两者都在同一天开始,在公历中是1月1日,在Discordian中是1。 圣母不和谐元年(YOLD 1)是公历前1166年,公历前一年,意味着今年(2017 AD)为YOLD 3183。 Discordian日历也有假期,但是对于这一挑战而言,假期并不重要,因此您不应输出它们或有关它们的任何内容。 编写一个程序或函数以输出或返回今天的日期(在执行时): Today is Boomtime, the 16th day of Confusion in the YOLD 3183 格式为"Today is $day_of_the_week, the $ordinal day of $season in the YOLD $year",其中$ day_of_the_week是大写的星期几(标题大小写),$ ordinal是本赛季的第几天(第1、2nd,3rd,4th等),$ season是大写的日期(标题大小写)季节,而$ year是年份。 如果您的程序或函数在圣提比纪念日执行,则应改为输出或返回"Today is St. Tib's …
15 code-golf  date 

10
给我围栏!
挑战 这是一个简单的挑战。给定两个正整数, w并h创建一个宽度为w,高度为的ASCII栅栏h。围栏应使用以下规则构造: 该+角色将代表一个职位。 该-字符将用于表示围栏的宽度。 的|将被用于表示围栏的高度。 在精确-输出了三个字符之后,必须随后输出一个+字符。除四个角以外,您输出a的任何其他时间都是无效的。您可以从左或从右开始遵循此规则(请参见示例),但是必须保持一致。+ 在准确|输出两个字符之后,必须随后输出一个+字符。除四个角以外,您输出a的任何其他时间都是无效的。允许您从顶部或底部开始遵循此规则(请参见示例),但是必须保持一致。+ 每个围栏都将恰好具有四个角,并且每个角将用表示+。 换句话说:每三个-字符必须输出一个+。并且每两个|字符必须输出一个+。 你可以假设栅栏将永远是一个矩形,并且这两个w和h永远不会大于100或小于1。尾随和/或前导空格是允许的。 示例/测试用例 w = 1 h = 1 +-+ | | +-+ w = 3 h = 2 +---+ | | | | +---+ w = 5 h = 7 +---+--+ or +--+---+ | | | | | | + …

14
我按了什么键?
任务是编写代码以识别在键盘上按下了哪个键。您可以假设一次只按下一个键,并且使用标准的美国键盘布局。那是@超过2的布局。 您的代码应为每个按键输出唯一的标识符。这包括PrtScn,滚动锁定,暂停,左Shift,右Shift,左Ctrl,右Ctrl,大写锁定,Tab,Enter,在数字键盘上输入,数字锁定,插入,在数字键盘上的Ins,退格键,Del,F1 ... F12,Esc,左Windows键,右Windows键,Alt,AltGr,应用程序键(上下文菜单)等等。 您的代码应继续等待按键并输出其身份,直到被杀死为止。但是,一旦释放密钥,它应该输出标识符。它不应从收到的按键中执行任何其他操作,并且除了唯一标识符外,它不应输出任何东西。 在您的答案中,请显示以下键盘按键的代码输出内容:数字键盘上的Tab,暂停,Enter,Enter,数字键盘上的左Windows键,右Windows键,Ins和Ins。 如果您使用的键盘非常不同,那么挑战仍然是为键盘上的每个键输出不同的标识符。
15 code-golf 

24
附加号码
一个相当简单的挑战:您将收到两个输入,一个字符串和一个数字(数字可以视为字符串,即"123"代替123) 如果字符串不是以数字结尾(即,它与regex不匹配\d$),则只需将数字附加到字符串的结尾即可。 如果字符串确实以数字结尾(即,它与regex匹配\d+$),则应首先删除该数字,然后附加数字。 这两个输入都不是无效的或为空(无效是由不只包含数字的数字输入定义的) 该数字永远不会包含-或.。 该字符串将永远不会包含换行符或不可打印的非空白字符。 测试用例: abc123 + 345 -> abc345 123 + 1 -> 1 hello + 33 -> hello33 123abc123 + 0 -> 123abc0 ab3d5 + 55 -> ab3d55 onetwo3 + 3 -> onetwo3 99ninenine + 9999 -> 99ninenine9999
15 code-golf  string 

18
Copodope Gopolopfop
语言:Oppification 通过对每个单词应用以下过程来创建一种有趣的语言: 放在op每个辅音之后。如此Code成为Copodope。 对,就是那样。为了这个挑战的目的,y总是辅音。 挑战:去势化 给定一个单词,返回原始单词。输入内容仅包含字母。首字母可以大写。原始单词永远不会为空,并且始终包含元音。 测试用例: Oppified -> Original a a I I itop it opop op Opop Op popopop pop Copopop Cop opopopop opop Kopicopkop Kick Asopia Asia soptopopop stop hopoopopsop hoops hopoopopedop hooped ooooohop oooooh aaaopopaaa aaaopaaa Popopopsopicoplope Popsicle gopaloplopopopinopgop galloping aopopbopopopcopopop aopbopcop

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.