Questions tagged «code-golf»

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

30
将列表分为偶数索引部分和奇数索引部分
灵感来自这个问题: 使一个函数(或完整程序)接收数字列表并输出重新排列的列表,以便首先出现偶数索引的数字,然后出现奇数索引的数字。数字本身的值不会影响排序-只有索引会影响排序。所有索引均从零开始。 例如: 输入: [0, 1, 2, 3, 4] 输出: [0, 2, 4, 1, 3] 另一个例子: 输入: [110, 22, 3330, 4444, 55555, 6] 输出: [110, 3330, 55555, 22, 4444, 6] 对于您的语言具有的列表,请使用最自然的表示形式。复杂性没有限制(例如,分配临时列表就可以了-无需就地执行此操作)。 PS它应该适用于空列表(空输入=>空输出)。

12
Quine /反向Quine
编写一个接受布尔或非负整数输入的完整程序。它必须: 如果输入值错误,则输出其自己的源代码 如果输入值为真,则反向输出其自己的源代码 您的程序不能是回文的,也不能以任何方式读取其自己的源代码。 这是代码高尔夫-以字节为单位的最短代码获胜。
26 code-golf  quine 

4
打我一个OOP!
打我一个OOP! 面向对象编程的两个重要组成部分是继承和组合。它们一起允许创建简单而强大的类层次结构来解决问题。您的任务是解析有关类层次结构的一系列语句,并回答有关层次结构的问题。 输入项 从文件或标准输入中读取关于类层次结构的一系列语句和问题,以最适合您的语言的情况为准。如果使用file选项,文件名将作为第一个参数传递给代码(函数参数或命令行参数,无论您选择哪个)。格式如下: <statement> : <name> is a <name>. | <name> has a <name>. <question> : Is <name> a <name>? | Does <name> have a <name>? <name> : a-z | A-Z | sequence of alphanumerics or underscores, starting with a letter 输入将始终是语句,然后是问题。所有班级名称A-Z均以大写英文字母()开头,所有成员名称均以小写英文字母(a-z)开头。所有名称均区分大小写- ABC123与的类不同Abc123。 不会有任何周期性继承-如果B继承自A,A不会继承B或任何B的子代。 只有类名将成为层次结构的一部分-诸如foo is a bar.或document has …

24
数数和拼写
编写一个程序,该程序以一个字符串作为输入,该字符串输出具有以下属性的字符串。 如果字符串中的字符是大写字母(ASCII 41-5A),则该字符串将替换为一个字符串,该字符串包含每个字母,直至并包括大写的原始字母。例如,如果输入字符串为I,则输出为ABCDEFGHI。 同样,如果字符是小写字母(ASCII 61-7A),则该字符将以相同的方式替换。i将由替换abcdefghi。 如果字符是数字(ASCII 30-39),则该字符将替换为从0该数字开始直至该数字为止的每个数字。 如果输入包含串联的各个字符,那么替换序列将串联在一起。 所有其他字符均按原样打印。 样本输入(用空白行分隔) AbC123 pi=3.14159 Hello, World! 样本输出 AabABC010120123 abcdefghijklmnopabcdefghi=0123.0101234010123450123456789 ABCDEFGHabcdeabcdefghijklabcdefghijklabcdefghijklmno, ABCDEFGHIJKLMNOPQRSTUVWabcdefghijklmnoabcdefghijklmnopqrabcdefghijklabcd! 这是代码高尔夫,伙计。适用标准规则。以字节为单位的最短代码获胜。 要查看排行榜,请单击“显示代码段”,滚动到底部,然后单击“►运行代码段”。优化程序制作的代码段。 显示代码段 /* Configuration */ var QUESTION_ID = 61940; // Obtain this from the url // It will be like http://XYZ.stackexchange.com/questions/QUESTION_ID/... on any question page var ANSWER_FILTER = "!t)IWYnsLAZle2tQ3KqrVveCRJfxcRLe"; var …
26 code-golf  string 

20
我是否完美(数字)?
这是我的第一个挑战! 背景 完美数是一个正整数,等于除其本身以外所有除数的总和。 因此6,完美数是1 + 2 + 3 = 6。 另一方面12不是,因为1 + 2 + 3 + 4 + 6 = 16 != 12。 任务 您的任务很简单,编写一个程序,对于给定的程序,将n打印以下消息之一: 我是一个完美的数字,因为d1 + d2 + ... + dm = s == n 我不是一个完美的数字,因为d1 + d2 + ... + dm = s [<>] n 除的 d1, ... …

15
天哪,它包含在标签中!
缩进用户,团结一致!我们必须与所有卑鄙的用户抗争! 您的任务(您应该选择接受)是编写一个带有两个参数的程序或函数: 字符串:这是输入。 正整数:每个选项卡的空格数。 您必须遍历字符串的每一行,并用给定的空格数替换每个用于缩进的制表符,并且将每个不用于缩进的制表符(例如,在一行的中间)替换为一个空格。 注意诸如这样的行\t \tabc是未定义的行为;它们是由邪恶的标签用户插入的,以使您的程序复杂化。 根据Tabs Must Die Society的说法,您的程序必须尽可能短,以免被恶意的Tab用户发现。 例 \t 用于在此处表示标签。 输入字符串: a \t\tb\tc d 输入号码: 4 输出: a b c d 中间行缩进了8个空格,每个制表符缩进4个(因为给定的数字为4)。 输入字符串: \ta\t\tb 输入号码: 4 输出: a b 注意:这不是选项卡扩展挑战的重复;它需要非常不同的输入格式和稍微不同的要求。

13
努力工作,做得更好
在此挑战中,您的目标是将歌词输出到Daft Punk的“ 更难,更好,更快,更强”。具体来说,输出以下文本: Work It Make It Do It Makes Us Harder Better Faster Stronger More Than Hour Our Never Ever After Work Is Over Work It Make It Do It Makes Us Harder Better Faster Stronger More Than Hour Our Never Ever After Work Is Over Work It Harder …

1
解决交通路口
任务 编写采用交通交叉路口结构并输出车辆通过顺序的程序或函数。 输出应包含至多4行的格式如下#. x->y\n,其中#是一个序列号数,然后由点.,x和y是字符["N", "E", "S", "W"]。它们应以字符分隔->。如果不返回字符串数组,则每行必须以\n(换行符)或与您的系统等效的结尾。 输入应采用以下形式: 第1部分:四个字符,每个字符的源道路的目标道路的顺序为N,E,S,W(顺时针)。允许的字符是N,S,W,E或。空间意味着在特定道路上没有车辆。例如,字符串S WE表示N辆车希望向南行驶,空格表示没有E车,W意味着S 车向西行驶,E意味着West车向东行驶。 第2部分-表示紧急车辆的空格或单个字母。 第三部分-两个字符确定哪两条道路具有优先权(例如,NE意味着北部和东部的优先级均高于南部和西部)。如果更方便,您可以选择优先等级较低的道路(在这种情况下SW)。 在无法解决的情况下,你被允许返回一个行字符串是明确告知用户,如unsolvable,no solution和类似的。JavaScript用户可以采用内置undefined常量。 这是一个代码高尔夫球,因此最短的答案以字节为单位。 交通规则 请注意,某些规则可能不符合您所在国家/地区的交通规则。其中一些已简化以使挑战更容易。不要将此问题用作现实交通系统的指南。 对于挑战,您只能使用右侧流量。 交通交叉路口恰好由四条相交的道路组成。它们被标记N(为“北”) ,S,。W 在上面的输出示例中,E应使用这些字母代替x和y。 每条道路上最多只能有一辆车。不能保证每条道路上都有车辆。每辆车可以在四个方向中的任何一个方向上行驶。左转,右转,直行或进行掉头。 如果两辆车的路径不相交(它们不碰撞),它们可以在同一时刻行驶。如果有两辆车,路径不会发生冲突(列表可能不完整,但这是有意的,仅为您提供一个线索): 来自相反的方向,并且都直走,或者至少其中一个向右转, 来自相反的方向,都向左转, 来自相反的方向,其中一个可以向任何方向旋转或掉头,而另一个可以掉头, 来自正交方向,左一个向右转,另一个不掉头 下面是一些不冲突路径的示例。请注意,在第三个图形上,即使N掉头,N的任何路径也会与E的路径相撞。 如果两条路径冲突,则必须使用其他规则。如果有两辆车在同一优先道路上(见下文),则该车的通行权为: 如果来自正交方向,则来自右侧的道路 如果另一个向左转,则向右转 直行或向右转(如果对方掉头)。 在下面的两个示例中,E车都拥有高于S的通行权。 在下面的示例中,首先是W,然后是N,然后是E,最后是S。 对于这种特殊情况,程序的输出应为: 1. W->S 2. N->S 3. E->S 4. S->S 所有驾驶员都使用转向信号灯,并且知道其他所有人都想去哪里(为简单起见,我们假定可以区分左转弯和掉头)。 有时,道路会被赋予优先权标志,这比上述规则更为重要。具有较高优先级的道路具有优先标志(优先标志图像)。如果优先道路不能直走,那么还会使用其他标志,例如这样。优先级较低的道路具有屈服标志或停车标志(它们是等效的)。没有一条或恰好两条不同的道路具有更高的优先级。程序的用户应该能够输入优先级较高(或较低)的道路。 来自优先级较高的道路的车辆比来自优先级较低的道路的车辆具有路权,即使该车辆位于左侧。 如果来自同一优先级的道路上的两辆车的路径发生冲突,则上面的右侧规则将处于活动状态。 在下面的示例中,S和W道路具有优先权标志,这意味着N和E上的车辆应为它们提供道路。S车辆的优先级高于W车辆,因为它在右侧,因此先行。然后转到W,因为它在比E高的道路上。车辆N拥有从E离开的权利,因为它在其右侧。到最后E。 对于这种特殊情况,程序的输出应为: …
26 code-golf 

3
十六进制的发音
十六进制的发音 对于那些不熟悉节目《硅谷》的人来说,这项挑战的灵感来自这样的交流(YouTube): Kid - Here it is: Bit… soup. It’s like alphabet soup, BUT… it’s ones and zeros instead of letters. Erlich Bachman - {silence} Kid - ‘Cause it’s binary? You know, binary’s just ones and zeroes. Erlich Bachman - Yeah, I know what binary is. Jesus Christ, I memorized …

3
救命,我被困在一个无限的工厂里!
Zachtronics游戏Infinifactory大致激发了这一挑战。 您将获得由表示的矩形输送机网格的俯视图>v<^。可能有一些没有传送带的小室,以空格表示。这是一个例子: > <vv < v ^ >v v >v^^>vv^ ^>^ v > v<v >> >v v<^ 此设置隐含无限数量的空格。 此外,还给出了矩形货物的尺寸,该货物放在网格左上角的传送带上。您的任务是弄清楚货物是否曾经停下来,或者最终是否会成环运动。 当然,货物可能会一次覆盖多个输送机,因此以下是在每个步骤中确定货物方向的规则: 对面的传送带互相抵消。因此,如果3x2货物覆盖以下任何补丁(为清晰起见,用连字符和管道勾勒出轮廓),结果将是相同的: +---+ +---+ +---+ |>>^| | ^| |v^^| |^<<| |^ | |^^v| +---+ +---+ +---+ 这些也是一样: +---+ +---+ +---+ |v^<| | | |><>| |>>>| |>> | |>><| +---+ +---+ +---+ …

5
ASCII龙曲线
介绍 在龙的曲线是,特别是在侏罗纪公园小说的章节标题的页面会出现一个分形曲线。 可以非常简单地将其描述为折叠纸带的过程,如Wikipedia文章中有关此曲线的说明中所述。 生成此曲线的前几次迭代如下所示(图片来自Wikipedia): 挑战 编写一个程序或函数,给定整数n作为输入,仅使用符号_和符号将龙曲线的第n次迭代输出为ASCII艺术形式| 你必须输出仅使用数字|,_和空间。您可能不会将曲线输出为曲线图或其他任何形式。 您可以将输入作为程序参数,STDIN或函数参数。 输入将始终是> = 0的整数。您的程序应该为合理的输入值工作,在所提供的测试用例中,最高值为12。 第一次迭代应如下所示 迭代0为 _ 迭代1为 _| 迭代2为 |_ _| 最后一条尾随行是可以的。除了将线填充到曲线中最右边的字符之外,不允许尾随空格 不会像往常一样滥用标准漏洞 测试用例 输入项 0 输出量 _ 输入项 3 输出量 _ |_| |_ _| 输入项 5 输出量 _ _ |_|_| |_ _ _| _| |_|_|_ |_|_| |_ _| |_| 输入项 10 …

21
计算波
我已经在这个网站上滚动了一段时间,但是最近才真正对尝试一些挑战很有兴趣。我本来打算尝试一些现有的代码高尔夫球主题,但是昨天我有一段时间没有互联网访问权限,与此同时,我考虑了自己的挑战。 您的任务是创建一个程序或函数,该程序或函数采用Floats数组a和一个整数n,然后将每个值设置a为旁边两个值的平均值n。当重复使用增大值时n,会产生类似波浪的运动: 细节: 如果碰巧中只有一项a,n或者等于或小于0,则程序应返回原始数组。 输入和输出可以以所需的任何格式显示,只要它们在视觉上是分开的即可。 对于每个步骤: 中的第一项a应成为其自身与下一项的平均值。 中的最后一项a应成为其自身与上一项的平均值。 中的任何其他项目a应成为上一项和下一项的平均值。 确保您要计算的是上一步的数组,而不是当前的数组! 测试用例:注意:您的输入/输出不必采用这种格式! [0, 0, 1, 0, 0], 1 -> [0, 0.5, 0, 0.5, 0] [0, 0, 1, 0, 0], 2 -> [0.25, 0, 0.5, 0, 0.25] [0, 0, 1, 0, 0], 0 -> [0, 0, 1, 0, 0] [0, 0, 1, …

9
帮我carry购物袋
那是一个温暖的夏日傍晚。 当我愚蠢的汽车决定在从超市回来的路上在路中间抛锚时。我把它推到了场外,决定步行回家。我打开后备箱取出杂货和剩余的东西。那时我才发现这些物品装不平。有些袋子的物品较重,而有些袋子的重量较轻-有些甚至混合了此类物品。为了便于携带,我决定将所有物品归为两个袋子,并使其重量尽可能地接近。 你的目标 是为了帮助我将商品重新放入两个购物袋中,使两个购物袋之间的差异尽可能接近零。 数学上: 左手重量— 右手重量≈0 例 如果我只有面包和花生酱这两种食品,而面包的重量是250克,花生酱的重量是150克,最好的方法是用两只手分别携带。 W LH -W RH = W (面包) -W (黄油)250-150 = 100 另一种可能性是: W (面包,黄油) -W (空手) =(250 + 150)-0 = 400 这并不比我们的第一种情况更好,因此您应该选择第一种情况。 您的代码应 输入表示购物袋中物品重量的数字。单位并不重要,但是它们应该相同(理想情况下为千克或克)。输入可以一次完成,也可以一次完成。如果需要,您可以将总数限制为最多20个项目。 输入格式/类型由您决定,但是除权重外,其他任何内容都不能出现。 允许使用任何语言,但要遵循标准库。 显示输出。同样,您可以自由选择格式,但可以在帖子中说明格式。即,我们如何分辨哪些是左手物品,哪些是右手物品。 点数 最短的代码胜出。 暗示 我可能想到的两种可能的算法是微分(更快)和排列/组合(慢)。您可以使用这些算法或其他任何可以完成任务的算法。
26 code-golf  math 

8
输出每个停止程序(编写并行解释器)
这项挑战的目标是(最终)以您选择的语言输出每个可能的停止程序。起初,这听起来似乎是不可能的,但是您可以通过非常仔细地选择执行顺序来实现。 下面是一个ASCII图来说明这一点。让这些列代表每个可能程序的编号(每个程序是有限字母中的有限数量的符号)。让每一行代表该程序执行中的单个步骤。一个X代表该程序在该时间步执行的执行。 step# p1 p2 p3 p4 p5 p6 1 X X X X X X 2 X X X X X 3 X X X X 4 X X X X 5 X X X 6 X X 7 X X 8 X X 9 X X ∞ X …

2
通过自动取款机打给我一些现金
任务很简单。给我一些1000,500和100注意事项。 怎么样 ?你可能会问。不用担心,因为附近有自动取款机可以接收您的信用卡,因此无需抢劫银行。但是您的信用额度仅够完成任务,因此您在提款时必须格外小心。 挑战 鉴于数量1000,500以及100所需音符,计算得到至少那些许多笔记所需的特定取款。在每次提款中,ATM均可根据以下规则吐出每张钞票: 提取的金额(A)小于5000 如果为A%1000 == 0,则ATM吐出1个500便笺,5个100便笺和其余1000便笺 否则A%500 == 0,ATM会吐出5张100钞票,其余1000钞票 否则A%1000 < 500,自动柜员机会吐出floor(A/1000) 1000纸币和休息100纸币 否则A%1000 > 500,ATM会吐出floor(A/1000) 1000钞票,1 500和休息100钞票 提款金额大于等于 5000 如果为A%1000 == 0,则ATM吐出2个500便笺和其余1000便笺 否则,如果A%500 == 0ATM吐出1张500便笺和其余1000便笺 否则A%1000 < 500,自动柜员机会吐出floor(A/1000) 1000纸币和休息100纸币 否则A%1000 > 500,ATM会吐出floor(A/1000) 1000钞票,1 500和休息100钞票 为了澄清起见,以下是一张完整的纸币表,其中列出了所有可能的最高金额7000(您可以提取更多,但此后模式不会改变)。顺序是<1000> <500> <100>: 100 => 0 0 1 2500 => 2 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.