Questions tagged «code-golf»

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

2
RX的ValiDate ISO 8601
挑战 查找最短的正则表达式 只会验证,即比赛中,每一个可能的日期在Proleptic公历(这也适用于所有日期在1582年首次执行前) 与任何无效日期都不匹配。 输出量 因此,输出是真实的还是错误的。 输入值 输入采用3种扩展的ISO 8601日期格式中的任何一种-无时间。 前两个是±YYYY-MM-DD(年,月,日)和±YYYY-DDD(年,日)。the日都需要特殊的外壳。这些扩展的RX天真地将它们分别匹配: (?<year>[+-]?\d{4,})-(?<month>\d\d)-(?<day>\d\d) (?<year>[+-]?\d{4,})-(?<doy>\d{3}) 第三种输入格式是±YYYY-wWW-D(年,周,日)。由于leap周模式复杂,因此比较复杂。 (?<year>-?\d{4,})-W(?<week>\d\d)-(?<dow>\d) 对这三个组合进行的基本但有效性不足的检查如下所示: [+-]?\d{4,}-((0\d|1[0-2])-([0-2]\d|3[01]) ↩ |([0-2]\d\d|3[0-5]\d|36[0-6]) ↩ |(W([0-4]\d|5[0-3])-[1-7])) 条件 一个闰年的Proleptic公历包含闰日 …-02-29,因此它是长366天,因此…-366存在。在序数可被4整除的任何年份中都会发生这种情况,除非它也能被400整除,否则不会被100整除。 该日历中存在零年,并且是a年。 一个漫长的一年,在ISO周历包含了第53周,其中一个可以称之为一个“ 闰周 ”。在1月1日是星期四的所有年份中都会发生这种情况,在所有leap年都是星期三的所有leap年都发生这种情况。事实证明,它通常每5或6年出现一次,呈看似不规则的模式。 一年至少有4位数字。不必支持位数超过10的年份,因为这已经足够接近宇宙的年龄(大约140亿年)。前导加号是可选的,尽管实际标准建议多于4位数字的年份需要使用它。 不得接受不完整的部分或截短日期。 日期标记,例如一个月的部分,也没有必须由可能被引用的一组相匹配。 规则 这是代码高尔夫球。没有执行代码的最短正则表达式将获胜。更新:您可以使用诸如递归和平衡组之类的功能,但是会被罚款10倍,然后与字符数相乘!现在,这与Hard code golf中的规则不同:Regex可除以7。较早的答案胜出。 测试用例 有效测试 2015-08-10 2015-10-08 12015-08-10 -2015-08-10 +2015-08-10 0015-08-10 1582-10-10 2015-02-28 2016-02-29 2000-02-29 0000-02-29 -2000-02-29 -2016-02-29 200000-02-29 …

1
卡坦定居者-最长之路!
这是卡坦定居者的残局: 背景: 道路(长棍棒)和居民点(和城市)由小木屋组成。我们使用以下方案对这些片段的放置进行编码:从顶部开始,我们有一排水平顶点和一条可以放置道路的边。然后,我们只有一列道路,依此类推。使用R代表红色,O代表橙色,B代表蓝色,_代表无,图板将被编码为: ________RR_R_ __R_ __RR_R_RRR_____R_ B___R _B_________B__OO_OOR_ B__B_R BB_BBB_____B____RR_R_ OBB_O OO__BB_BB__OOO_OO O_O_ _O_OOO_O_____ 这样的板将作为您的输入字符串。任何字母都[A-Z]可以指示玩家的颜色,但是最多可以有四种颜色(包括空白)。否则,根据定居者规则,保证董事会有效,这意味着: 每种颜色最多具有两个连续的道路网络,这些道路网络可能会或可能不会被其他玩家居住区/城市(顶点建筑物)分开。看到橙色沉淀物将样品图像右侧的红色道路分开。 保证每个路网至少有一个居民点。 保证所有定居点和城市与最近的其他定居点/城市(您或其他人)至少有两个边缘 一位玩家在游戏板上可能只有15条道路。 对于Catan爱好者:出于此问题的目的,在定居点和城市之间没有区别,因此我在输入字符串中没有区别。 所有这些都是为了指定“输入”字符串。 最长的路: 在定居者中,玩家拥有“最长的道路”可获得两个胜利点。定义为:从起点到终点的最长连续单路径(以道路为单位),不会被对手的定居点或城市分解。只要您可以跟踪从一个特定起点到一个特定终点的路径,循环就可以了。因此,一条6条道路的环路加上一条分支的道路的长度为7,但是一条在两条道路上相对的6条道路分支的两条分支的长度仍为7。 在示例地图中,右侧的红色道路仅价值4,因为板子右侧的橙色解决方案将他切断了(这就是为什么完全包括解决方案的原因)。蓝色的道路长度为13,橙色的道路长度为12。红色的最高道路仅价值7,因为它没有连接到其旁边的两条道路。 输出: 道路最长的所有玩家(如果有平局,则可能会超过一条),然后以空格和/或下划线划定距离(以10为底)。 因此,示例板的输出为: B 13 问题陈述: 您可以编写程序或函数,通过STDIN或作为函数的字符串参数接收输入板,然后将上述输出作为字符串返回或将其打印到STDOUT(或最接近的输出)。您可以选择在输出中包含单个尾随换行符。 这是代码高尔夫球,最短的程序获胜。当然,标准漏洞是被禁止的。


2
43亿个排列
我们可以按如下方式将Rubik's Cube表示为网络(求解时): WWW WWW WWW GGGRRRBBBOOO GGGRRRBBBOOO GGGRRRBBBOOO YYY YYY YYY 每个字母代表相应的颜色(W白色,G绿色等) 它已被证明有恰好43 ,252 ,003 ,274,489 ,856 ,00043,252,003,274,489,856,00043,252,003,274,489,856,000(〜434343百万的三次方)不同的排列,一个魔方可以英寸 你的任务是把一个整数之间1个1个1和43 ,252 ,003 ,274,489 ,856 ,00043,252,003,274,489,856,00043,252,003,274,489,856,000和输出对应的置换,在上述所示的方式。您可以选择排列的顺序,但是必须显示您使用的算法为每个可能的输入生成唯一且正确的排列。 无效的排列规则 取自此页面 首先,每个3x3面的中心必须保持相同,因为魔方立方体上的中心正方形无法旋转。可以旋转整个多维数据集,更改面的显示位置,但这不会影响多维数据集的网格。 如果我们说每个置换都有一个奇偶校验,那么根据达到该置换的交换次数的奇偶校验,我们可以说 每个角件都有三个可能的方向。可以正确地设置其方向(0),顺时针(1)或逆时针(2)。拐角方向的总和始终保持为3的整数倍 魔方上的每次合法旋转都总是翻转偶数个边,因此不会只有一个方向错误。 考虑到所有拐角和边缘的排列,整体奇偶校验必须为偶数,这意味着每个合法举动始终执行相等数量的互换(忽略方向) 例如,以下三个网是无效的输出: WWW WWW WWW GGGWWWBBBOOO GGGRRRBBBOOO GGGRRRBBBOOO YYY YYY YYY (Too many whites/not enough reds) WRW WRW WRW GGGRWRBBBOOO …

10
数字日期范围
注意:由于我本人是荷兰人,dd-MM-yyyy因此挑战说明和测试用例中的所有日期均为荷兰语格式。 挑战: 输入: 开始日期;结束日期;数字sssËeeñnn 输出: 范围内的所有日期(包括双方),其日期中包含位数的唯一数字。[ s ,e ][s,e][s,e]ñnn 例: 输入:开始时间:12-11-1991; 结束日期:02-02-1992; 数字:4 输出: 天/月的前导0: [20-11-1991, 23-11-1991, 24-11-1991, 25-11-1991, 26-11-1991, 27-11-1991, 28-11-1991, 30-11-1991, 01-12-1991, 02-12-1991, 09-12-1991, 10-12-1991, 13-12-1991, 14-12-1991, 15-12-1991, 16-12-1991, 17-12-1991, 18-12-1991, 20-12-1991, 23-12-1991, 24-12-1991, 25-12-1991, 26-12-1991, 27-12-1991, 28-12-1991, 31-12-1991, 01-01-1992, 02-01-1992, 09-01-1992, 10-01-1992, 11-01-1992, 12-01-1992, 19-01-1992, 20-01-1992, 21-01-1992, …
16 code-golf  number  date 

13
引用大哥
任务:让您的程序在运行时随机选择以下两个引号之一,并完全按照所示打印该引号。 1: Under the spreading chestnut tree I sold you and you sold me. There lie they, and here lie we Under the spreading chestnut tree. 2: WAR IS PEACE. FREEDOM IS SLAVERY. IGNORANCE IS STRENGTH. 限制:字spreading,chestnut,PEACE,FREEDOM,和STRENGTH 必须出现在你的代码。以上两个引号中的任何单词都不能多次出现在您的代码中。 最短的解决方案获胜。

29
微笑!只是笑一下
众所周知,Brainf * ck在解决Kolmogorov复杂性问题方面非常糟糕,例如,仅打印“ Hello world”就需要大约100个字符。 但是,在某些文本中Brainf * ck可能非常擅长。 现在,您的任务是编写一个无需输入的程序,并显示以下内容: ☺ 也就是说,是笑脸(如果您的浏览器未渲染,则为ASCII 1)。 Brainf * ck可以用2个字符完成此操作。 +. 尝试找到一种胜过它的语言! 我们假设您的控制台可以实际显示该字符(或您的字体具有该字符,等等)。 最短的代码获胜。如果还有更多相同的长度,则第一个获胜,但我也会对其他人投票。 编辑:非常抱歉,我不认为第一篇文章会很快到达。快速编辑:语言必须是图灵完整的!

10
编写最短程序以检查二叉树是否平衡
对于平衡二叉树中的每个节点,左子子树和右子子树的高度最大差值为1。 二叉树的高度是指从根节点到最远离根节点的子节点的距离。 下面是一个示例: 2 <-- root: Height 1 / \ 7 5 <-- Height 2 / \ \ 2 6 9 <-- Height 3 / \ / 5 11 4 <-- Height 4 二叉树的高度:4 以下是二进制树和有关它们是否平衡的报告: 上面的树是不平衡的。 上面的树是平衡的。 编写尽可能短的程序,该程序接受二叉树的根作为输入,如果树不平衡,则返回假值,如果树平衡,则返回真值。 输入值 二叉树的根。这可能是以对根对象的引用或什至是二叉树的有效表示形式的列表的形式。 输出量 返回真实值:如果树是平衡的 返回falsey值:如果树为un平衡。 二叉树的定义 树是一个对象,其中包含一个值以及另外两个树或指向它们的指针。 二叉树的结构如下所示: typedef struct T { …

5
自计分程序
要输出您自己的分数,我们遇到了挑战,但似乎所有答案都只是对输出进行了硬编码,这很无聊1。因此,让我们面临新的挑战。您的程序必须输出自己的长度(以字节为单位),后跟字符串" bytes",但如果要防止硬编码的解决方案(如果我们通过删除任何一个字节来减小其大小),则新程序还必须输出其新的字节数,其后仍为" bytes"。输出不必区分大小写。您也可以选择输出尾随换行符。 您的答案将以字节计分,而字节数越少越好。 1:我实际上很喜欢那里的一些答案。

5
我忘了毛巾日
我忘了毛巾日 沙盒链接 两个示例的PHP脚本(错误,格式化字符串) 更正了PHP脚本,输入内容为自解释 PHP脚本具有更多输入注释/注释$argv,可查看不同结果 如您所知,5月25日被称为“ 毛巾日”,因为毛巾有很多用途。 摘自《银河系旅行者指南》一书的简单摘录(我个人认为这本书是《日常指南》),其中指出: “毛巾是星际旅行者可以拥有的最有用的东西。部分它具有很大的实用价值。” 如果您需要有关毛巾的更多信息,请检查此SE.scifi答案 挑战 希望您能用一条毛巾作为腿毛做毛巾。 用任何需要两次输入的有效编程语言编写完整的程序或函数 size Integer : #The size message string : #A sentence 如何用这些值画一条毛巾? 首先使用size: 根据输入的尺寸画一条毛巾,我们的毛巾采用ASCII技术 width = 12*size #the line that has the "bar" its always present with different sizes Width is defined as: from the first | to …

2
编程非圆度分数
您的任务是编写一个数学函数s,该函数A在2D平面中采用一组非空的有限点,并输出s(A)满足以下属性的非圆度分数: 正定性:如果有一个包含所有点的圆或直线A,则s(A) = 0。除此以外s(A) > 0 排斥性:它对非负实数是排斥的,这意味着对于每个非负实数,平面r的有限子集A使得s(A) = r。 平移不变性: s如果s(A) = s(A + v)对于每个向量v和所有,则平移不变A。 标度不变性: s是尺度不变,如果s(A) = s(A * t)每一个t≠0和所有A。 连续性。 s被说成是连续的,如果函数f(p) := s(A ∪ {p})(映射的点p到的实数)是连续使用的实数的标准绝对值,并且在该平面的各点的标准欧几里得范数。 直观地讲,这种非圆度得分可以认为与线性回归中的相关系数相似。 细节 理论上,您的函数必须在实际中起作用,但是出于此挑战的目的,您可以使用浮点数代替。请提供您提交的内容的解释,并说明这五个属性为何成立。您可以将两个坐标列表或一个元组或类似格式的列表作为输入。您可以假设输入中没有点重复,即所有点都是唯一的。

4
没有“半空杯子”之类的东西
您可能知道玻璃是半满还是半空的反问。我对这个词感到有些厌倦,所以我决定是时候以编程方式消除对玻璃充满或空虚的困惑了。 您的任务是编写一个程序,该程序采用 丑陋的玻璃杯并输出相应的精美玻璃杯的ASCII艺术作品。它也必须决定玻璃是否是full,mostly full,mostly empty或empty和输出这个问题,以及(4任何恒定的,不同的输出值做)。 TL; DR 输入是玻璃(#字符)和液体(a-z)在玻璃内部和外部随机分布的ASCII艺术。玻璃内的液体掉落并积聚在其底部,玻璃外的液体被丢弃。液体沉淀在底部后,输出玻璃的ASCII文字。确定玻璃杯已满并输出。 丑陋又漂亮的眼镜 通常,玻璃是由#字符制成的容器,该字符具有底部,两个侧壁且没有顶部。 有效的眼镜上没有孔。(#必须连接所有字符。) #输入ASCII文字的每行中至少要有两个字符,或者没有。没有一行恰好一条#。 输入的ASCII艺术作品的顶行将始终恰好有两个#。 有效的眼镜在其定界#字符壁中恰好有一个局部最小值。这意味着液体不会被困在某处。 玻璃的分隔墙将没有局部最大值。 #玻璃底部下方不会有任何东西。 玻璃的内部将始终是一个连通的空间。 输入中可能包含前导/后缀空格和换行符。 有效眼镜和无效眼镜的示例: VALID (possible input to your program): # # # # #### # # # # # # # # # # # # ## # # # # ### # # …

5
狼和鸡
有一条河,河的一侧有狼和鸡。他们有木筏,都需要走到另一边。但是,木筏不能自行行驶。如果上面有两只以上的动物,木筏将沉没。没有动物要弄湿,因为这条河又冷又脏。没有动物可以在河上跳跃或飞行。同样,如果一侧有鸡,那一侧的狼就不会多于那一侧的鸡,然后狼会决定吃掉这些鸡。这意味着您不能将两只狼和一只鸡放在木筏上。 您的任务是制作一个程序/函数,将多头狼和多只鸡(大于或等于多头狼)作为输入,并找出木筏在河上移动的最少次数。如果无法完成任务,则程序/功能应输出/返回空字符串。然后它将以以下方式打印/返回一种有关如何完成此操作的方法: W if a wolf crosses the river on its own C if a chicken crosses the river on its own CW if a chicken and a wolf cross the river -- WC is also fine CC if two chickens cross the river WW if two wolves cross the …

11
Triplegolf-不仅源代码的长度很重要!
挑战的目标是编写一个程序,其中以下三个的长度完全相同: 源代码的长度 打印到标准输出的输出长度 您选择的(未修改)编译器生成的编译器警告的长度 获胜者是满足所有这三个条件的最短代码,并且必须至少长1个字符。 更有趣的是,如果输出中少于三个不同的字符,则每个字符的长度加5点惩罚(如果只有一种,则为+10,两个为+5)。 (您可以选择以1或2个字符作为换行符,但是在所有这三个条件中换行符必须保持一致。在这三个条件的所有行中,前导空格和尾随空格都将被忽略) 如果得分相等,则赢得最有趣结果(而不是垃圾)的人将成为赢家。
15 code-golf 

5
当前的十二生肖是什么?
根据给定国家/地区显示给定时间东部生肖的表情符号。 东部十二生肖是一种分类方案,它将动物及其知名的属性分配给重复的12年周期中的每一年。它也分配给小时。 规则: 必须使用ISO 3166-1 alpha-3代码指定国家/地区。清单在这里。 输入格式必须是这样的:<ISO code> HH:MM。输入必须是单个字符串。任何不适合此格式的输入均属于无关情况。 如果给定时间在以下给定图表的边界内,则可以输出任一个十二生肖。 因为这是代码高尔夫,所以以字节为单位的最短代码获胜。 黄道十二宫: 没有指定国家/地区的黄道带是默认设置。 第一个十二生肖(23:00 – 01:00): 🐀(U + 1F400) 波斯(IRN)的Mouse🐁(U + 1F401) 第二个十二生肖(01:00 – 03:00): 牛🐂(U + 1F402) 越南(VNM)的水牛(U + 1F403) 波斯的(U + 1F404) 第三十二生肖(03:00 – 05:00): 虎🐅(U + 1F405) 波斯豹(U + 1F406) 第四十二生肖(05:00 – 07:00): 兔子🐇(U + 1F407) 越南的猫🐈(U …

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.