Questions tagged «code-golf»

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

2
固定牙套等
你的任务,你应该选择接受它,是要加的最低括号,括号,括号和数量做一个给定的字符串(只包含括号,括号,括号和)有正确的括号匹配。必须通过使成对的花括号之间具有最大距离来断开添加的符号的关系。您必须仅返回一个符合这两个规则的正确答案;如果存在进一步的关系,则可以按照您认为合适的任何方式断开它们。 例子: input output // Empty String is a legal input [ [] // Boring example [()] [()] // Do nothing if there's nothing to be done ({{ ({{}}) // NOT (){}{} (0 + 0 + 0). Maximum distance is 4 + 2 + 0, ({{}}) [([{])]} {[([{}])]} // NOT …

7
我应该把餐厅放在哪里?
您是一家餐厅的所有者。您将在笛卡尔的一个新区域中打开,那里只有一条主要道路,称为y轴。您要放置餐厅,以使与餐厅和该区域中每个房屋的总距离最小化。 输入: 输入将是 n, the number of houses house1 house2 house3 ... houseN 其中每个房子都是形式上的坐标x y。每个单位代表一公里。 您可以将输入作为字符串,也可以提供一个函数,将选择的任何格式的输入作为其参数。 输出:您餐厅的y坐标(请记住,它将位于y轴上)。实际上,它位于路边,但差异可以忽略不计。 从本质上讲,如果第n个房子是h_n和D是距离函数,那么你要找到k这样D(h_0, (0, k)) + D(h_1, (0, k)) + D(h_2, (0, k)) + ... + D(h_n, (0, k))被最小化。 请注意,距离的计算方式就像客户从他们的房屋到餐厅的直线一样。那是(x, y)到餐厅的距离sqrt(x^2 + (y - k)^2)。 输出应精确到至少2个小数位。 输出可以打印为字符串,也可以从函数返回。 输入/输出示例: Input: 2 5.7 3.2 8.9 8.1 Output: …

4
订购40条
我们有40条相同宽度但不同高度的棍棒。有多少种布置可以将它们彼此相邻放置,以便当我们从右边看时看到10条,而当我们从左边看时又看到10条? 例如,这样的排序是: 黑棒是隐藏的,红色棒是从左看时可以看到的棒,蓝色棒是从右眼看时可以看到的棒,紫色的棒(即最长的棒)是可以看到的棒从双方。 作为测试用例: 如果我们有3个棍棒,那么从左边看2个,从右边看2个的订购数量是2 如果我们有5个棍棒,那么从左边看3个,从右边看3个的订购数量是6 如果我们有10个棍棒,那么从左边看4个从右边看4个的订购数量是90720

14
CodeGolf-忽略噪音#1
使用说明 Barry 并不是一个很好的后端开发人员,负责一个小型API,该API应该为您提供有关在客户商店中进行购买的信息。但是,他做得不好,您的老板告诉您在客户端进行修复。理想情况下,你应该接受逗号分隔值,如927,2,45,90对应于像item_id,item_amount,unit_price,total 在第一个难题中,我们只关心item_id,item_amount但是我们需要其他领域来介绍问题。巴里有时把事情混在一起,并返回噪声输出的一部分,他也得到了顺序不对,返回noise,noise,unit_price,total,item_id,item_amount。 你的任务 无论Barry是否正确返回它们,您都需要在地图(或类似结构)中存储对,item_id并item_amount在换行中以尽可能少的字符数打印每个元素。(存储不是强制性的,我们只关心输出) 样本输入(混合的正确格式和混乱格式) 103,2,50,100 106,1,900,900 459,40,150,300,67,2 4,20,30,6000 换句话说,输入将是&a,b,x,x或x,x,x,x,a,b我们在乎的地方。您需要提供代码,假设我们在csv的所有行中都有一个名为(或任何其他名称)的变量。abG 样品输出 103,2 106,1 67,2 //This one was messy 4,20 公差 答案有一定的容忍度。格式相似但遵循正确值的答案也将被接受。格式,如[a,b],(a,b)或者{a,b}是有效的,但是a,b是优选的。 尽管第一个难题的解决方法既简单又快速,但它的接受程度参差不齐,但我也觉得有些人也喜欢它。所以我现在要继续做高尔夫

6
实时字符串匹配
任务 任务是打入您选择的实时精确字符串匹配算法。 输入值 标准输入上提供两行文本,并用新行分隔。第一行包含“模式”,将只是从字母中提取的ASCII字符串a-z。 第二行包含较长的“文本”,也将只是从字母中提取的ASCII字符串a-z。 输出量 精确匹配发生位置的索引列表。您应该输出发生的每个比赛的开始位置。 规格 您的算法可以花费线性时间对模式进行预处理。然后,它必须从左到右读取文本,并为文本中的每个单个字符花费恒定的时间,并在出现任何新匹配项时立即输出。匹配当然可以彼此重叠。 算法 有许多实时精确匹配算法。例如,在KMP Wiki上提到了一个。您可以使用任意一个,但必须始终输出正确的答案。 我将保留每个语言领导者的表格,以便那些喜欢流行语言的人也能以自己的方式获胜。请说明您实施了哪种算法。 即时的 对于实时的含义似乎有很多困惑。这不仅仅是线性时间。因此,标准的KMP 不是实时的。问题中的链接明确指向KMP Wiki页面上有关KMP实时变体的部分。Boyer-Moore-Galil也不是实时的。这个理论性的问题/答案讨论了这个问题,或者只是谷歌“实时精确匹配”或类似的条款。

4
移位XORyption
编写一个程序或函数(或一组程序/函数),以给定以下规范来加密和解密数据: 加密 通过将每个字节彼此异或来对输入进行XOR哈希计算。 通过此哈希对输入的每个字节进行XOR。 将结果左移四位。 用XOR哈希的前四位填充左侧。 在XOR哈希的最后四位填充右侧。 例 给定的输入:"G0lf"(0x47306C66) 计算XOR哈希: 0x47 ^ 0x30 ^ 0x6C ^ 0x66 = 0x7D 通过哈希对每个字节进行XOR: 0x3A4D111B 预期结果(后移和垫): ()"s¤Ñ\x11½"0x73A4D111BD 规则 只要输入/输出是实际的字节,您的程序/函数就可以在您选择的高尔夫语言(字符串,字节数组等)中有意义的任何类型的输入/输出。例如,您可能不输出十六进制字符串。 加密和解密可以分为单独的程序(分数将是它们的总大小)或单个程序。单个方法可以采用参数进行加密还是解密。 预计加密输入至少为1个字节。 解密输入至少应为2个字节。 不可打印字节不需要在输出中转义。

19
反句
挑战的目标是接收输入并输出该输入,但句子顺序相反。输入示例: Hello friend. What are you doing? I bet it is something I want to do too! 示例输出: I bet it is something I want to do too! What are you doing? Hello friend. 从示例中可以看出,您的程序必须处理问号,感叹号和句点。您可以假设每个句子都有标点符号,而下一个句子之前没有空格。只要可读即可,尾随空格/换行符就可以。最短的代码获胜。 祝好运! 编辑:您可以假定句子中没有引号或括号,但是如果您使代码能够处理这两个词,则将得到-5字节 parens / quotes的示例输出: "Hello, " she said. (I didn't know what she was …
15 code-golf 

2
建立老鼠迷宫的程序
您已被聘为研究助理,并被要求创建一个小程序来构建老鼠迷宫。老鼠盒始终为62x22,并具有老鼠的入口(a)和出口(A),如下所示(输入1): #######a###################################################### # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #################################################A############ 您的程序必须在方框中填充块(#),为老鼠留下路径,如下所示(输出1): #######a###################################################### ####### ###################################################### ####### ###################################################### ####### …
15 code-golf  grid  maze 

2
我如何在生活中获得更多的Klotski?
我真的很喜欢滑动拼图,但是最近,我没有时间去做。因此,我需要一个程序来解决滑动砖块难题,特别是Klotski难题。 您的输入将采用以下格式: ####### #001gg# ##.222# .###### 其中#代表墙壁,.代表开放区域,g代表目标,相邻数字代表不同的方块。您可以假设: 不会超过10个街区 不会有两个号码相同的方块 所有街区将被围墙包围 网格是矩形 该0块是大到足以覆盖所有的目标方格。 有一个有效的解决方案 您需要返回一系列移动步骤,以放置0方块,使其覆盖所有目标方格。方块不能穿过墙壁或其他方块。对于上述难题,适当的顺序是 2L,1R,1R,1D,0R,0R,0R while代表将2方块向左移动1方块,1方块向右移动2方块(在球门顶部),然后向下移动1方块,再0向右移动3方块。 实际上,有几个序列可以解决上述问题,并且产生其中的任何一个都是可以接受的。您的解决方案应该是最佳的,这意味着它应该产生一个序列,以尽可能少的步骤解决难题。 序列应如上打印,但可以用逗号,换行符或空格分隔。我不在乎是否有逗号或空格。您应该在合理的时间内产生输出(在以下难题中最长为120秒)。 难题1: ..####.. ..#00#.. ###00### #......# #.1122.# ##3124## .#3344#. .##55##. ..#gg#.. ..####.. 难题2: ###### #1002# #1002# #3445# #3675# #8gg9# ###### 难题3: .####. ##1g## #22g3# #4255# #4.56# #.006# #7008# ###### 难题4: .####. ##00## #.00g# …

12
生成SUDSI序列
所述SUDSI序列(ス米,d。差分,s ^ WAP,我 ncrement)是一个奇怪的整数序列,似乎表现出相当混乱行为。可以如下生成: 令S为自然数的无限列表:1 2 3 4 5 6 ...。让小号我表示一个索引的我的第i个元素小号。因此,最初, S 1为1,S 2为2,依此类推(没有S 0)。 从S 1和S 2开始 ... 计算它们的总和: sum = S1 + S2 计算它们的绝对差(较大的值减去较小的值): diff = |S1 - S2| 交换S中两个值的总和和差值:swap(Ssum, Sdiff) 递增您正在使用的S的索引。因此,下一次您将计算S 2和S 3的和与差,之后的时间将是S 3和S 4,依此类推。 无限重复此过程。 这是应用此过程时S的前几个阶段。方括号[]包围将要求和和求差的两个值。 原始S: [1 2] 3 4 5 6 7 8 9 …

4
ASCII冰淇淋
编写一个程序或函数,该程序或函数采用正整数N,并打印或返回N×N ASCII艺术字串,其上半部分是由组成的半圆(,下半部分是由组成的下指三角形V,并且用作填充的空格。 换句话说,制作一个ASCII冰淇淋蛋筒:(N = 17的输出) ((((( ((((((((( ((((((((((((( ((((((((((((( ((((((((((((((( ((((((((((((((( ((((((((((((((((( ((((((((((((((((( VVVVVVVVVVVVVVVVV VVVVVVVVVVVVVVV VVVVVVVVVVVVV VVVVVVVVVVV VVVVVVVVV VVVVVVV VVVVV VVV V 例子 这是N = 1至5的输出。请注意,对于奇数N,三角形始终必须是较大的一半。 V (( VV ((( VVV V (( (((( VVVV VV ((( ((((( VVVVV VVV V 这是N = 101 pastebin。 这是一个非公开的Python 3参考实现: N = int(input()) …

8
离散贝克地图
介绍 在贝克的地图是一个重要的动力系统表现出混沌行为。它是从单位平方到其直观定义的函数,如下所示。 将正方形垂直切成两半,形成两个大小为的矩形0.5×1。 将右半部分堆叠在左上方,形成一个矩形大小 0.5×2 将矩形压缩回1×1正方形。 在此挑战中,您将实现此转换的离散版本。 输入输出 您的输入是2D数组,可打印的ASCII字符和2m×2n某些字符的空白空间m, n > 0。您的输出是使用数组按以下方式获得的类似6×4数组 ABCDEF GHIJKL MNOPQR STUVWX 举个例子。首先,将数组的右半部分堆叠在左半部分的顶部: DEF JKL PQR VWX ABC GHI MNO STU 然后,将这些列拆分为成对的字符,并分别将每对字符顺时针旋转90度,将高矩形“压缩”回原始形状: JDKELF VPWQXR GAHBIC SMTNUO 这是上述阵列的正确输出。 规则 输入和输出格式灵活。您可以使用换行符分隔的字符串,字符串列表或2D字符数组。但是,输入和输出必须具有完全相同的格式:您必须能够对任何有效输入进行任意次数的提交迭代。 您可以编写完整的程序或函数。最低字节数获胜,并且不允许出现标准漏洞。 测试用例 Input: 12 34 Output: 42 31 Input: Hell ! o d - lroW Output: lol …
15 code-golf  string  grid 

25
将字符串转换为其等效的Rövarspråket
Rövarspråket Rövarspråket是瑞典儿童玩的文字游戏,来自Astrid Lindgren撰写的有关Kalle Blomkvist的书籍。 基本规则如下(来自Wikipedia): 每个辅音(拼写很重要,不是发音)都会加倍,并且在中间插入一个o。 元音保持不变。 一些例子: “你好”->“ hohelollolo” “ Minsvävareärfull medål”->“ MoMinonsosvovävovaroreärorfofulollol momedodålol” 瑞典辅音与英文辅音相同,因此该程序应适用于瑞典语和英文条目。 在大多数情况下,字母“ y”在这种情况下被视为辅音。 你的任务: 编写一个程序,以将通过函数或通过stdin输入的一串瑞典字母转换为等效的Rövarspråket。以字节为单位的最短答案胜出!
15 code-golf  string 

21
性鲍勃炸弹的簿记(检查运行总和是否过低)
信不信由你,塞伯鲍勃炸弹已成为一支世界闻名的乐队,目前正在世界巡演中!作为他们的簿记员,您必须监督他们的日常财务状况并提供定期报告。 您每隔几周会按照产生的顺序编制一份支出清单(以美元为单位)。 例如清单 378 -95 2234 表示将$ 378存入他们的帐户,并在提取$ 95和存入$ 2234之后。 你要确保这些值的运行总和从未低于某一阈值牛逼。您决定编写一个程序来为您执行此操作。 挑战 编写一个包含单个整数T和一个整数列表的程序或函数。如果整数列表的运行总和小于T,则打印或返回假值,否则打印或返回真值。 您可以使用任何常用的输入法(stdin,从文件,命令行,函数的参数)。 在列表的开头,运行总和为0。因此,正T表示结果始终是虚假的。 + 永远不会在正整数前面。 该列表可能包含0。 该列表可能为空。 测试用例 牛逼是-5在所有这些。 虚假: -6 1 2 3 -20 200 -300 1000 真相: [empty list] -5 4 -3 -6 计分 字节最少的提交将获胜。Tiebreaker最早发布。 令人遗憾的评论迫使我不得不这样做。

4
分解它!…非常
好奇的孩子使用的程序可以将数字或表达式分解为以下形式:p1^e1 * p2^e2 * ... * pn^en。等于的指数1被省略,例如360 = 2^3 * 3^2 * 5 孩子将该输出作为新输入输入程序中,但是她不理解该^符号,因此有时她会跳过连接相应素数和指数的一个或多个符号。例如(360 =) 2^3 * 3^2 * 5 => 2^3 * 32 * 5 (= 1280) 由于这些错误,她可能会得到不同的因式分解,可以再次输入(跳过0或多个^)。她重复此过程,直到因式分解不再更改为止(也许不再存在^或正确复制了输出)。 您应该编写一个程序或函数,给定一个整数n(n>1),以递增顺序输出所有可能的数字,其分解可能是孩子最终得到的分解(包括n)。例如,输入16可能的最终分解为(16 =) 2^4, (24 =) 2^3 * 3, (23*3 =) 3 * 23 输入详细信息: 输入是一个大于的整数 1 没有输入将产生大于 2^31-1 没有输入将产生比1000输出数更多的输入 输出详细信息: 以您的语言方便的形式显示的整数列表 …

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.