Questions tagged «code-golf»

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

4
在平衡基数之间转换!
平衡基数: 平衡基数与正常基数基本相同,除了数字可以为正数或负数,而在正常基数中,数字只能为正数。 从这里开始,平衡的底数b可以表示为balb-平衡的底数4 = bal4。 在此挑战的定义中,平衡的基数范围中的数字范围b是从-(k - 1)到b - k,其中 k = ceil(b/2) 以各种平衡基数表示的数字范围的示例: bal10: k = ceil(10/2) = 5 range = -(5 - 1) to 10 - 5 = -4 to 5 = -4, -3, -2, -1, 0, 1, 2, 3, 4, 5 bal5: k = ceil(5/2) = 3 …

7
停车场主管
介绍 您是停车场的主管,而您的经理正在为缩小规模做准备。 它是去年PAT最高级别中问题的简化版本。 挑战 你被要求计算有多少车是在很多的同时,在最。 适用标准规则。这是一个代码高尔夫球,因此最短的代码获胜。 第一行是条目的数量(不超过100,000,如果您愿意,您的输入可能不包含此行,因为这只是确定输入在何处结束的临时命令)。以下文本每行包含一个条目。每个条目包括三个数字: <Car plate number> <Time (seconds) since open> <0(In) | 1(Out)> 修改2:可以使用三元组数组作为输入。 修改3:您可以在一个条目中更改数字的顺序。您可以选择使用哪个。(请参阅“备注”部分) 假定以下条件,则输入是有效的: Car plate number是10000〜范围内的整数99999 Time是0〜范围内的整数86400 和 条目不一定按时间顺序排列。 第一秒之前没有车。 有没有必要在最后一秒钟后,没有车。 汽车在驶入之前不会离开。 Car plate number是独特的。(但同一辆车可能会多次访问) 因此,当汽车已经进入其中时,它不可能进入该区域。 同一辆车不会在同一时间进出time。 进/出时,一辆车被认为是很多车。 例子1 输入值 11 97845 36000 1 75487 16500 1 12345 16 0 75486 3300 0 …
13 code-golf 

2
关闭标签!
这是基于先前删除的同名我的挑战 介绍 您的任务是编写一个程序,该程序根据输入是否正确地按正确的顺序打开和关闭其所有类似于XML的1标签来返回真或假值。考虑以下内容作为输入: <Apple> 因为标签未正确关闭,这将返回falsey值。这个: <Apple></Apple> 相反,返回正确值,因为它已正确关闭。该程序还应该检查嵌套标签,以确保它们位于正确的位置。例如,将此作为输入: <mango><Apple></mango></Apple> 所有标签均已正确关闭,但顺序不正确。您的程序必须检查正确的标记层次结构和嵌套。 定义 在我进入规则和假设之前,请先定义一些内容。 标签 基本的XML样式标签。例如:<Apple>。它们最多可以有一个前导和尾随空格(否则它是无效的和虚假的),因此< Apple >和<Apple>是相同的。这些标签也可以包含类似的属性foo="bar" (需要用双引号,否则无效,falsey) ,属性名只能包含任何字母数字字符或_,:,-,和.。属性名称也不需要属性值,并且值可以包含除"右双引号之前的任何内容。结束标签不得包含属性,并且标签中不得包含换行符。 标签名称 标签名称是标签的名称。例如,<Apple>的标签名称是Apple。标记名称可以包含与属性名称相同的字符,并且区分大小写。这意味着,<Apple>是不是 <apple>。 自闭合标签 会自行关闭的常规标记,例如<Apple />或<Apple/>(它们相同)。斜杠和标签名称之间的空格是允许的。 纯文本 一个字符串,可以包含任何内容,并且不包含在<和中>。 “简单”标签 打开,关闭或自动关闭标签。 规则 输出可以退回或打印,并且输入可以按照您喜欢的任何方式进行 输入是一个字符串,由标签,纯文本或两者组成 您的程序可以是一个功能或整个工作程序 纯文本可以在任何地方;如果输入仅包含纯文本,则程序应返回真实值。 该程序需要识别嵌套标签。如果标签嵌套在标签中,则该嵌套标签必须在关闭父级之前关闭,就像常规XML一样,否则应返回falsey值 假设条件 您可以假设输入将始终是一个或多个“简单”标签 您可以假设输入将始终遵循上面定义的标签的格式 测试用例 虚假 <apple> <apple></Apple> <apple></mango> <apple><mango> <a><b></a></b> Text<ul><li></li><ul /> <pear attr=foo></pear attr=foo> <Ketchup flavor=spicy></Ketchup> …

4
绘制嵌套的部首
数学中的许多公式都涉及嵌套的部首(其他平方根符号内的平方根符号)。您在这里的任务是使用ascii艺术画这些。 眼镜 您将得到两个整数,部首内部的个数和部首个数。我认为解释您的工作的最佳方法是举一个例子。这是输出2, 4: ____________________ \ / _______________ \ / \ / __________ \ / \ / \ / _____ \/ \/ \/ \/ 2 这里有一些注意事项: 每个部首的高度增加一 的长度_始终5是高度的乘积 在最后/一个内在根之后和下一个内在根开始之前有一个空格 里面的数字永远不会大于4位数字 如果部首数为0,则输出该数 放置额外的空间以将其填充为矩形取决于您 这是代码高尔夫球,因此以字节为单位的最短代码胜出! 测试用例 2, 4: ____________________ \ / _______________ \ / \ / __________ \ / \ / \ …

1
鲍勃的密码
介绍 鲍勃喜欢为他使用的每个网站使用不同的密码。他想要一种特殊格式的密码,以便他可以记住。通过建立一个密码生成器来帮助他,该密码生成器的代码长度应尽可能短,因为他喜欢像他的名字一样简短。 挑战 为Bob生成一个密码生成器,该生成器具有四个参数- 域名地址,(例如:stackexchange.com) 名字, 姓, 出生日期和年份。 并输出经过以下转换的字符串。 每个密码都有一个基于域名长度l的模板。如果l为质数,则模板的格式为- [birth-date][domain-name][lastname][birth-year][symbol] 否则就是这种形式- [symbol][birth-year][firstname][domain-name][birth-date]。 符号字段将具有基于域类型的值。 .com-> $$$ .org-> &&& .net-> %%% .edu-> +++ .gov-> @@@ .mil-> >>> 默认-> ~~~ 现在,他还想对字段- 进行凯撒密码[firstname][domain-name][lastname]。如果l为素数,则移位方向为右,否则为左。偏移值由出生日期和年份相加的值确定。 经过上述过程后,文本很难被记住,因此他希望加密后的文本清晰可辨。为此,他想用字母顺序(即aeiou)的元音替换每三个连续的辅音。 最后,他想删除连续出现的相同字母。 例 输入-stackexchange.com bob williams 0894 输出-08qraicvafyecugjigyoq94 $$$。 说明: 密码模板为[birth-date][domain-name][lastname][birth-year][symbol],因为域名的长度stackexchange是素数。符号将$$$与域类型相同.com。 让我们在模板-中填充这些值08stackexchangewilliams94$$$。现在,必须在字段上运行凯撒密码[firstname][domain-name][lastname](在这种情况下,它只是姓氏)。位移方向是正确的,因为l为质数,位移值为08+94 = 102。 因此,08stackexchangewilliams94$$$变成08qryaicvafylecugjjgykq94$$$。现在,每三个连续的辅音都用元音替换- 08qraaicvafyeecugjigyoq94$$$ 删除同一字母的每个连续的音调- 08qraicvafyecugjigyoq94$$$。别担心,这对Bob来说很明显。 附加信息 域名,名字和姓氏仅包含小写字母。 …
13 code-golf  string 

17
克隆自己!
您将要创建一个程序,该程序可以无限创建自己的精确克隆,直到停止为止。原始程序中的所有内容都必须在克隆中。换句话说,克隆和原始程序在每种方式上都是相同的,只是克隆不必与源代码位于同一文件类型(它们可以是文本文件)。 例: 如果我的原始程序是: for i in range(0, 10): print i 克隆还必须是: for i in range(0, 10): print i 规则和说明: 禁止出现标准漏洞 副本必须是原始副本的精确副本 克隆必须是可读文件,如果放入正确的解释器中,则可以运行 该程序可以读取自己的源代码 所有克隆都必须是单独的文件 不允许打印程序 文件名计入字节数 克隆不必与源文件位于同一目录中,也不必共享相同的文件名 至少应能创建1000个克隆 获奖情况: 最小字节获胜!

8
优化ASCII试管
您会得到一堆ASCII试管,您的任务是减少所用试管的数量。 每个试管如下所示: | | | | | | |~~| | | | | | | | | |__| 显然~~是水位。试管也可以是空的,在这种情况下,里面没有~~字符。单管最多可容纳8个水位单元。 您将获得有限数量的内部不同水位的试管。您必须将水尽可能少地倒入试管中,然后输出结果。 | | | | | | | | |~~| | | | | | | | | | | | | | | | | |~~| | | | | …

8
ASCII艺术僵尸入侵模拟
要模拟僵尸入侵,请从#并代表地图的网格开始: ## ## ### # ## ## # ### # #### # 代表土地。 代表水。 僵尸始于地图上的某个点。 ## ## ### # ## %# # ### # #### ...并传播。%表示被僵尸感染的土地。 但是,僵尸不会游泳。他们可以像国王下象棋一样在陆地上移动-在任何对角线或正交方向上都是一个正方形: !!! !%! !!! 在模拟结束时,一些土地将被僵尸感染: %% ## %%% # %% %% % %%% # %%%% 您的任务是模拟僵尸入侵。编写一个程序(或函数),该程序将代表网格初始状态的字符串和代表初始僵尸坐标的两个数字作为输入。程序应输出(或返回)入侵的最终状态。 技术指标 您的程序可能会打印可选的尾随换行符。 您可以假定输入将采用正确的格式(用空格填充)以及可选的尾随换行符。 您可以假设最初的僵尸将在陆地上开始并且不会立即死亡。 这是代码高尔夫球,因此最短的答案(以字节为单位)获胜。 如果您的代码还可以解决任意图灵机的暂停问题,则可获得-100%的奖励。 您的程序应处理的木板宽度最多为50个字符。

14
生成给定元素列表的所有组合,排序
编写一个将列表和数字作为输入的代码,并生成带有数字长度的所有可能组合。例如,使用列表{0,1}和数字2: 00 01 10 11 您的程序不必在列表中两次或多次出现字符,例如 {0,0,0,0,0,1,1,5,5} 确保按列表顺序打印出已排序的组合: 使用列表{0,1}和数字5(由我的某些代码生成,这是赢的时间太长了): 00000 00001 00010 00011 00100 00101 00110 00111 01000 01001 01010 01011 01100 01101 01110 01111 10000 10001 10010 10011 10100 10101 10110 10111 11000 11001 11010 11011 11100 11101 11110 11111 但是使用列表{1,0}和数字2: 11 10 01 00 如您所见,反向列表表示反向顺序。 看一下结构,就像一棵树。 这是代码高尔夫球,因此以字节为单位的最短代码胜出!

6
高尔夫球手历险记-第1章:花瓶
高尔夫冒险 这是第一个挑战!以后会有更多挑战,需要上一个挑战的数据:) 第一章:花瓶 让我们想象一下。.您是一位强大的上帝,您的力量是无限的,但需要一件事情:灵魂。每个灵魂在这里都用一个字节表示,您使用的每个字节确实会牺牲一个灵魂。因此,目标显然是拯救最多的人,同时牺牲最少的灵魂。 您的第一个挑战是拯救一个小村庄,如果您解决了他的挑战,魔鬼愿意不破坏整个村庄。 挑战: 您有一个垂直花瓶,可以容纳10个东西(包括空气)。如果在花瓶里放东西,重力会使那东西掉到底部。如果花瓶已经装满了(如果您认为它“充满了空气”,则它总是装满的),输入将替换花瓶顶部的元素。 这是一组允许的东西: 空气 0 / 一块岩石 1 / - 一片树叶 2 / ~ 一颗炸弹 3 / x 如果“炸弹”上有一块岩石或一片叶子,它会爆炸并摧毁上面的东西。 输入的内容是您每转将要放入花瓶中的物品的列表。 示例: 11231:您将放置2块岩石,然后是一片叶子,然后是炸弹,最后是最后一块岩石。 当花瓶静止时,您可以按照以下规则开始计数: Rock向累加器增加1个单位 Leaf将累加器乘以2 炸弹使累加器减1 空气无能为力 (您需要从花瓶顶部开始计数) 这是我们使用“ 11231”作为输入得到的模拟: |-| |-| |~| |x| |-| | | | | | | | | | | …
13 code-golf 

1
在Euchre玩最好的卡
输入: 首先 ,由三张纸牌组成的数组代表每个玩家所玩的纸牌,格式如下 [JD][TH][9S] 代表 Jack of Diamonds, 10 of Hearts, and Nine of Spades. 由于您总是在Euchre中与队友面对面,所以第二个元素代表队友的表现。在这里TH。 其次 ,代表王牌西装的单个字符,字符串等格式如下 S, D, C, H 代表 Spades, Diamonds, Clubs, Hearts 第三张代表您的手的四张牌的排列格式如下 [KD][JC][QH][AS] 代表 King of Diamonds, Jack of Clubs, Queen of Hearts, Ace of Spades 目的: 给定三个输入,输出可能最好的纸牌以添加到已播放的纸牌中,以使其满足以下条件: 如果可能,它会抽牌,如果没有输出最低价值的卡 它会尽力而为,但是除非不可避免,否则它不会胜过您的队友。 如果可以握牌,则使用价值最低的卡。(如果您有一张王牌和一张可以赢得手牌的皇后,则可以扮演皇后)。 任何戏剧都必须遵守底部规则的要求。 输出格式如 [JD] …

11
将此数组变成矩阵
将非嵌套数组作为输入。使用以下方法将其转换为矩阵: 假设我的数组是 [1, 2, 3, 4, 5] 首先,我将该数组重复5次:(长度) [[1, 2, 3, 4, 5], [1, 2, 3, 4, 5], [1, 2, 3, 4, 5], [1, 2, 3, 4, 5], [1, 2, 3, 4, 5]] 然后,我沿对角线阅读: [[1], [2, 1], [3, 2, 1], [4, 3, 2, 1], [5, 4, 3, 2, 1], [5, …

1
在给定期间内,使用笑话获得最小的日期列表
考虑日期格式为的日期YYYY-MM-DD。您可以*在日期字符串的末尾使用小丑。例如,2016-07-2*描述从2016-07-20到的所有日期2016-07-29。 现在,考虑由开始日期和结束日期表示的期间。 该算法必须找到代表该期间的最小日期列表。 让我们举一个例子。在以下期间: 开始日期: 2014-11-29 结束日期: 2016-10-13 该算法必须返回一个包含以下日期列表的数组: 2014-11-29 2014-11-30 2014-12-* 2015-* 2016-0* 2016-10-0* 2016-10-10 2016-10-11 2016-10-12 2016-10-13
13 code-golf  date 

8
在跷跷板的一侧增加重量以使其平衡
平衡技术 跷跷板(据说来自法国的“ci-ça”,意思是“ this-that”)构成了游乐场设备的三位一体的三分之一,以及类似的无处不在的滑梯和秋千。当且仅当两边的力矩之和相等时,跷跷板才能达到完美的平衡。因此,可以通过在力矩总和较低的一侧增加一定数量的重量来平衡跷跷板。实现这一目标是您应对这一挑战的目标。 挑战 您面临的挑战是将跷跷板描述为输入并再次输出,并在跷跷板的一端增加重量以使其平衡。 输入值 您的程序必须采用任何合理格式的ASCII跷跷板,例如: 100 100 ------------------- ^ 第一行包含两个数字,每个数字代表跷跷板上的重量。每侧恰好有一个重物,每个重物都作用在木板一侧的末端。权重保证为整数,并始终与其相应的木板末端对齐。这些数字永远不会与支点(^)重叠。 第二行代表跷跷板的“木板”。每个破折号(-)代表彼此的破折号长度相等,唯一的例外是破折号直接位于支点(^)上方,没有长度。 第三行代表跷跷板的支点。该支点由唯一的字符而不是该行上的空格(抑扬符('^'))标记。支点可以在有效输入中沿木板长度放置的任何位置,只要保留足够的空间,以使表示重量的数字在输入或输出中都不会与支点重叠。 确保输入有三行,并且在构成跷跷板的字符之前或之后没有空格(当然,第三行除外)。 输出量 为了输出,应该在标准输出上打印相同的跷跷板图,但是要用一个(只有一个)砝码替换为较大的砝码,以平衡跷跷板。确保仅使用整数就可以使输入成为可能。因此,显示的重量必须没有小数点或任何其他类似的符号。如果您的语言不使用stdout,则应该就输出达成社区/元共识。尾随换行符很好,但是对描述格式的任何其他更改可能都不行。 范例 测试输入和相应的输出 输入1 12 22 -------------------- ^ 输出1 12 26 -------------------- ^ 输入2 42 42 ----------- ^ 输出2 42 42 ----------- ^ 输入3 3 16 ---------------- ^ 输出3 14 16 ---------------- ^ 输入4 …

2
充满素数
注意:这是受此问题启发的。 任务: 您的任务是n在程序的每个字符重复执行n到位时生成素数。 假设您的程序是: Derp 其中的每个字符都重复一次,因此应输出2。 当每个字符都复制到位时,如下所示: DDeerrpp 这将生成第二个素数,即3。 眼镜: 您的程序必须不接受任何输入,并输出相应的质数。 给定足够的时间和内存,您的程序必须能在所有素数下工作。 开头和结尾的换行符都可以。 输出必须使用该语言的默认基础-如果没有默认基础,则任何基础都可以。 这是代码高尔夫球,因此以字节为单位的最短代码获胜。

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.