Questions tagged «code-golf»

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

5
Zzub Zzif(反向Fizz嗡嗡声)
给定一小段嘶嘶声输出,其中所有数字均已删除,请以尽可能低的值填充正确的数字,以使嘶嘶声摘要正确。对于这一挑战的目的,fizz并buzz有3个和5个他们一贯的价值观,分别。 如果输入是fizz,buzz和空行的无效序列,则仅输出zzubzzif(带或不带换行)。 输入和输出可以是换行符分隔的行,也可以是任何适合您的语言的字符串数组格式。 您可以忽略大写,也可以随便做什么。 您需要选择处理一个或一个以上的这些:fizzbuzz,fizz buzz,buzz fizz,等等,但你必须选择这些格式中的至少一个。 您可以假设所有输入都是fizz,buzz和空行的某些序列。 例子 输入: 嘶嘶声 输出: 2 fizz 4 输入: 嗡嗡声 嘶嘶声 输出: buzz fizz 7 输入: 嘶嘶声 输出: 13 14 fizzbuzz 16 17 输入: 输出: 1 输入: 嘶嘶声 嘶嘶声 输出: zzubzzif 输入: 输出: zzubzzif

8
自编译器[关闭]
这是基于我之前听过的关于编译器的讨论,但是不幸的是,我不记得何时何地。 用任何可以自行编译的语言创建最短的编译器。针对没有“编译程序”指令(这可能不包括某些版本的VAX)的任何合理的ISA(68K,x86,MIPS,ARM,SPARC,IBM BAL等)。从中读取源程序stdin并将生成的代码打印到中stdout。您可以将标准C库用于I / O和字符串处理(例如_printf)。您不需要编译整个语言,只需编译包含编译器的任何子集(即,仅打印汇编语言奎因虽然令人印象深刻,但不算作解决方案。)

14
今天是中心
给定日期作为任何方便格式的输入,请输出一个日历,其中该日期为五周窗口的确切中心。日历的标题必须包含星期几(即Su Mo Tu We Th Fr Sa)的两个字母的缩写。不允许使用三字母或其他缩写。 例如,April 2 2019作为输入,输出应为 Sa Su Mo Tu We Th Fr 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 …

30
我反转了源代码,您否定了输入!
公然敲竹杠一个的敲竹杠。去投票那些! 您的任务(如果希望接受)是编写一个程序/函数,该程序输出/返回其整数输入/参数。棘手的部分是,如果我反转源代码,则输出必须是取反的原始整数。 例子 假设您的源代码为ABC,其输入为4。如果我CBA改为编写并运行它,则输出必须为-4。 假设您的源代码为ABC,其输入为-2。如果我CBA改为编写并运行它,则输出必须为2。 输入的0可能为0或-0,但是,如果您确实支持带符号的零,-0则应为0。

3
连接4:发现假货!
银行被打乱了,所有当地的黑手党暴徒都有不寻常的不在场证明:他们在家里玩Connect 4!为了协助调查,要求您编写一个程序来验证所有被抓住的Connect 4板,以便检查位置是否确实是有效Connect 4游戏中的位置,并且没有匆忙组合在一起警察一敲门就一声。 连接4:玩家的规则,R并Y轮流将其颜色的方块拖放到7x6网格的列中。当玩家将砖块丢入列中时,它会下降以占据该列中的最低未填充位置。如果玩家设法在棋盘上获得四格相同颜色的水平,垂直或对角线,则他们获胜,游戏立即结束。 例如(R从开始),以下是不可能的Connect 4位置。 | | | | | | | | | | | | | | | | | | | | | | | | | | |R| | | | | | | |Y| | | | | |R| |Y| | | | …

14
破旧的拼字游戏
问题 您被困在树林中的小屋中,只有一个旧的拼字游戏可以娱乐自己。通过检查,您会看到拼字游戏字母非常磨损,以至于每个字母都仅可见。 尽管如此,您还是决定玩游戏。您从书包中取出七个字母并将其放在托盘上,您面临的挑战是确定这些字母可能是什么。 因此,通常,给定点列表会将其转换为任何可能的字符串或字母列表。 拼字游戏瓷砖和发行 2个空白磁贴(得分0分) 1点:E×12,A×9,I×9,O×8,N×6,R×6,T×6,L×4,S×4,U×4 2分:D×4,G×3 3分:B×2,C×2,M×2,P×2 4点:F×2,H×2,V×2,W×2,Y×2 5分:K×1 8点:J×1,X×1 10点:Q×1,Z×1 所以,如果你有个列表[10,10,8,5,1,1,1],然后"QZJKEEE"将是有效的,但"QQJKEEE"不会是有效的(因为在包里只有1 Q瓦) 问题特定规则 您可以假设所有输入都是有效的,并且将始终有7个图块(即,它将不是七个10点图块的列表,也不是9个图块) 您可以假设以前没有从包中拉出任何瓷砖(因此,分布是上述定义的英语瓷砖的标准分布) 您不必生成有效的单词,只需生成有效的字母字符串即可。 只要每个图块都有对应的字母,字符串的顺序就无关紧要。 点数是根据上面定义的标准英语拼字游戏点数得出的。 您可以输出大写或小写,对于空白图块,您可以输出空格字符或下划线“ _” 您的答案可能输出为图块的任何合理表示形式,例如列表,字符串,数组或序列 一般规则: 这是代码高尔夫球,因此最短答案以字节为单位。 不要让代码高尔夫球语言阻止您发布使用非代码高尔夫球语言的答案。尝试针对“任何”编程语言提出尽可能简短的答案。 标准规则适用于具有默认I / O规则的答案,因此允许您使用STDIN / STDOUT,具有适当参数的函数/方法以及返回类型的完整程序。你的来电。 默认漏洞是禁止的。 如果可能的话,请添加一个带有测试代码的链接(即TIO)。 另外,强烈建议为您的答案添加说明。 测试用例 显然,由于可以输出任何可能的值,因此很难定义严格的测试用例。 某些情况下可能带有有效的返回值: [10,0,10,5,8,8,0] -> "Q ZKJX " [1,1,1,1,1,1,1] -> "EEEEEEE" [1,2,3,4,5,8,0] -> "NDBHKJ " …

9
基于缩进的排序
给定一个大小写相同的字母字符串列表(az XOR AZ),其中每个字符串前面都带有0个或多个空格()字符,输出相同的列表,但字符串在每个缩进级别进行排序。出于排序目的,不同父项下的压痕深度算作不同的列表。 例 如果您输入的是: bdellium fox hound alien aisle wasabi elf alien horseradish xeno irk wren tsunami djinn zebra 您的输出应为 aisle horseradish xeno wasabi alien elf bdellium alien fox hound djinn zebra irk tsunami wren 如果愿意,可以将其视为目录列表,并且需要对每个目录中的名称进行排序。 细节 一个项目可以缩进任意数量的空格。如果缩进的空格与上一项的空格相同,则它属于与上一项相同的排序层次结构。如果缩进更多空格,则这是新的子层次结构的开始。 如果缩进的行比上一行的行少,它会以相同的#或更少的空格链接到其上方最近的子组(例如上例中的辣根,它链接到其上方的wasabi组),因为芥末是它上面的第一个没有比辣根更多的空间) 您必须在输出中保留每个输入项目的缩进级别 禁止在输出中使用制表符 输入的第一行将永远不会缩进 您的程序必须至少处理全部大写和全部小写的字符串之一;它不必同时处理两者。 计分 这是一个代码高尔夫球,因此使用最少字节的答案将获胜。

21
NxNxN Rubik多维数据集上的置换数量
介绍: 3x3x3魔方具有可能的排列,大约为43 亿个。您可能之前已经听说过这个数字,但是实际上是如何计算的呢?43 ,252 ,003 ,274 ,489 ,856 ,00043,252,003,274,489,856,00043,252,003,274,489,856,000 3x3x3魔方有六个面,每个面有九个贴纸。看(外部)件而不是贴纸,我们有六个中心件。八个角块;和十二个边缘碎片。由于中心不能移动,因此我们可以在计算中忽略它们。至于拐角和边缘: 有()排列八个角的方法。每个角都有三个可能的方向,尽管(八个中的)只有七个可以独立地定向。在给定()可能性的情况下,第八个/最后一个角的方向取决于前面的七个。8 !8!8!40 ,32040,32040,32037373^72 ,1872,1872,187 有()种方式来排列十二条边。从减半这是因为恰好在拐角处时,边缘必须始终保持均匀的排列。在给定()的可能性的情况下,第十二个/最终边缘的翻转取决于前面的十一个,因此可以独立翻转十一个边缘。12 !212!2\frac{12!}{2}239 ,500 ,800239,500,800239,500,80012 !12!12!2112,0482112112^{11}2 ,0482,0482,048 综上所述,我们有以下公式: 8 !× 37× 12 !2× 211= 43 ,252 ,003 ,274 ,489 ,856 ,0008!×37×12!2×211=43,252,003,274,489,856,0008!×3^7×\frac{12!}{2}×2^{11} = 43,252,003,274,489,856,000 资料来源:维基百科-Rubik的立方体排列 尽管这看起来可能已经很复杂了,但对于3x3x3多维数据集来说仍然相当简单。对于偶数立方体,公式略有不同。例如,这是4x4x4多维数据集的公式: 8 !× 37× 24 !2247= 7 ,401 ,196 ,841 ,564 ,901 ,869 …

20
列出*所有*元组!
给定输入n编写程序,将使用自然数生成所有可能的n元组。 n=1 (1),(2),(3),(4),(5),(6)... n=2 (1,1),(1,2),(2,1),(2,2),(1,3),(3,1),(2,3),(3,2),(3,3)... n=6 (1,1,1,1,1,1) (1,1,1,1,2,1) (1,1,1,2,1,1)... 输出的顺序可以不违反任何其他规则。 从理论上讲,该程序必须永久运行并列出所有适用的元组一次。 实际上,您的程序将达到整数类型的限制并崩溃。只要只有整数类型是无限的,程序就可以无限长地运行,这是可以接受的。 如果只允许程序运行那么长时间,则必须在有限时间内列出每个有效的元组。 您可以选择输出,除了自然数外还包括零。 为了方便起见,您可以选择程序的输出格式,只要元组和每个元组内的数字之间的分隔清晰且一致即可。(例如,每行一个元组。) 输入(n)是1到6的整数。对于超出此范围的输入,未定义所需的行为。 适用代码高尔夫球规则,以最短的程序获胜。 感谢“ Artemis Fowl”在沙盒阶段的反馈。

2
疑难杂症
给定结的陶氏符号及其交叉符号,请计算其括号多项式。 尽管存在更多的技术定义,但对于这一挑战,将结视为通过将绳的两端连接在一起而实际制成的东西就足够了。由于结存在于三维中,因此当我们将其绘制在纸上时,我们使用结图 -二维投影,其中的交叉点恰好是两条线,一上一下。 这里(b)和(c)是同一结的不同图。 我们如何在纸上表示一个结图?我们大多数人不是伦勃朗,因此我们依赖于Dowker表示法,其工作方式如下: 在结上选择任意起点。沿着结向任意方向移动,并从1开始对您遇到的交叉点进行编号,并进行以下修改:如果是偶数,并且您当前正在越过交叉点,则取消该偶数。最后,选择与1、3、5等对应的偶数。 让我们尝试一个例子: 在这个结上,我们选择“ 1”作为起点,然后继续向上和向右移动。每次我们去超过或下另一块绳,我们分配交叉点的下一个自然数。例如[3,-12],在图中,我们将与通过交叉的链对应的偶数取反。因此,此图将由表示[[1,6],[2,5],[3,-12],[-4,9],[7,8],[-10,11]]。列出1、3、5、7等的伙伴给我们[6,-12,2,8,-4,-10]。 这里有几件事要注意。首先,陶氏符号对于给定的结不是唯一的,因为我们可以选择任意的起点和方向。但是,有了这种表示法,就可以完全确定结的结构(从技术上讲,直到反映出其主要结的组成部分)。尽管并非所有的Dowker记号都可能形成结,但在此问题中,您可以假定输入代表实际的结。 为了避免打结之间产生歧义,并使挑战更容易解决,您还将获得一个交叉标志列表作为输入。 在正交叉处,下线从上线的角度转到左侧。在负数交叉处,它向右移动。请注意,倒车绕来绕去的结方向(即扭转双方在行和下行)不会改变交叉的迹象。在我们的示例中,交叉标志为[-1,-1,-1,1,-1,1]。它们以与道克符号相同的顺序给出,即编号为1、3、5、7等的交叉点。 AAA DDD⟨D⟩⟨D⟩\langle D\rangle 没有任何交叉的唯一循环的多项式为1。 DDDDDDDDD(−A2−A−2)(−A2−A−2)(-A^2-A^{-2}) DDD 在上图中,可以将第一张图中具有轮廓的交叉形式转换为第二张图(也称为正平滑)或第三张图(负平滑)。 AAAA−1A−1A^{-1} 感到困惑了吗?让我们做一个例子,尝试找到()的方括号多项式(注:这是两个连接在一起的结。这种图在此挑战中将不是潜在的输入,因为输入将只是单个结,但可能显示为算法的中间结果。) 我们首先使用规则3 我们在两个新结上再次使用规则3 我们用这四个新的结代替第一个方程。 将规则1和2应用于这4条告诉我们 所以,这告诉我们 恭喜您完成了结理论的简介! 输入值 两张清单: 道克符号,例如[6,-12,2,8,-4,-10]。交叉点的编号必须从1开始。相应的奇数[1,3,5,7,...]是隐式的,不能作为输入提供。 与道克符号对应的交叉口的符号(1/ -1或(如果您更喜欢0/ 1或false/ true或'+'/ '-')),例如[-1,-1,-1,1,-1,1]。 除了一对列表,还可以有一对列表,例如 [[6,-1],[-12,-1],... 输出量 A−2+5+A−A3A−2+5+A−A3A^{-2}+5+A-A^3[[1,-2],[5,0],[1,1],[-1,3]] −k…k−k…k-k\ldots kk∈Nk∈Nk\in \mathbb{N}[0,1,0,5,1,0,-1]A0A0A^0 规则 这是一个代码高尔夫挑战。无法使用任何标准漏洞,并且不能使用具有用于计算Dowker表示法或Bracket多项式的工具的库。(仍然可以使用包含这些库的语言,但不能使用库/软件包)。 测验 // 4-tuples of [dowker_notation, crossing_signs, …

6
那条蛇去哪儿了?
编写一个函数(使用尽可能少的字节),该函数采用任意数量的列和行的二维数组,其中: 0 代表空块, 1 代表蛇块。 该函数必须返回蛇可能经过的路径数。 范例1: 输入: [ [1,1,1,1,1], [0,0,0,0,1], [0,0,0,0,1], ] 输出: 2 在上面的示例中,该函数将返回,2因为答案是以下之一: 范例2: 输入: [ [1,1,1,1], [0,0,1,1], [0,0,1,1], ] 输出: 6 在此示例中,该函数将返回,6因为答案是以下之一: 注意: 评估输入时,可以假定: 表示列的数组将始终具有相同的大小(因此,数组为矩形); 至少存在1条有效路径; 蛇不能穿过边缘(某些蛇可能会发生这种情况)。 蛇将始终至少有2个方块; 蛇不能斜移动。 路径是定向的。(因此,两条路径在不同位置处结束,但看起来完全一样的路径不是同一条路径,它们将总计)

22
FIFO缓存未命中数
这个挑战真的很简单(并且是更困难挑战的先兆!)。 给定一个资源访问数组(用非负整数简单表示)和一个参数n,返回假定我们的缓存具有容量n并在充满时使用先进先出(FIFO)弹出方案的缓存未命中数。 例: 4, [0, 1, 2, 3, 0, 1, 2, 3, 4, 0, 0, 1, 2, 3] 0 = not in cache (miss), insert, cache is now [0] 1 = not in cache (miss), insert, cache is now [0, 1] 2 = not in cache (miss), insert, cache is …

26
交易所大写
给定两个字母字符串,将每个字符串的大写模式转移到另一个字母上。最少的字节数获胜。 Input: CodeGolf xxPPCGxx Output: coDEGOlf XxppCgxx 这两个字符串都是等长且非空的,只有字母a..z和A..Z。 您可以相对于输入以任何顺序输出两个结果字符串。 您可以将一对字符串表示为一个字符串,并使用非字母单字符分隔符输入和/或输出。 您可以将字符串表示为字符列表或一个字符的字符串,但不能表示为代码点值的序列,除非这些只是您语言中的字符串。 您的输入和输出可能代表不同的字符串。 测试用例: CodeGolf xxPPCGxx -> coDEGOlf XxppCgxx lower UPPER -> LOWER upper MiXeD lower -> mixed LoWeR A A -> A A ABcd EfGh -> AbCd EFgh
35 code-golf  string 

30
牛肝菌
相关但非常不同。 一个牛耕式转行书写法就是写作的所有其他行翻转或反转,并反转字母文本。 在此挑战中,我们将每隔一行反转一次,而使实际使用的字符保持不变。您可以选择要反转的行,只要它们彼此间隔即可。 只要您支持零行或更多行的可打印ASCII行(每行包含零个或多个字符),就可以采用任何合适的格式的文本。 例子: ["Here are some lines","of text for you","to make a","boustrophedon"]: ["Here are some lines","uoy rof txet fo","to make a","nodehportsuob"] or ["senil emos era ereH","of text for you","a ekam ot","boustrophedon"] ["My boustrophedon"]: ["My boustrophedon"] or ["nodehportsuob yM"] []: [] ["Some text","","More text","","","Last bit of text"]: ["Some text","","More …

21
木质词,小词
注意:这个问题有些粗鲁的话。 这个经典的Monty Python草图中有一个隐含的难题(您也可以在线准备脚本)。 各种短语被描述为“木质”或“小”,而一个短语被描述为“ PVC”。 给定一个短语,请根据以下列表使用其类型进行响应: woody: gone sausage seemly prodding vacuum bound vole caribou intercourse pert thighs botty erogenous zone ocelot wasp yowling tinny: litter bin newspaper antelope recidivist tit simpkins PVC: leap 规则 如果该输入属于上述列表中的一个,输出应该是woody,tinny或者PVC,相应地。 所有输入均为小写。 上面未列出的短语可以接受任何行为。 答案中最少的字节将获胜。

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.