Questions tagged «code-golf»

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

30
所有k-mers / n-gram
介绍 我们有直方图和计数,但没有列出全部。 每年,Dyalog有限公司都会举办一次学生比赛。面临的挑战是编写好的 APL代码。这是今年第六个问题的与语言无关的高尔夫版本。 我得到比赛原作者的明确许可,可以在此处发布此挑战。跟随提供的链接并与作者联系,以进行验证。 问题 术语k-mer通常是指字符串中包含的所有可能的长度为k的子字符串。在计算基因组学中,k-mer指通过DNA测序获得的读数中所有可能的子序列(长度为k)。编写一个函数/程序,该函数需要一个字符串和一个k(子字符串长度),并返回/输出原始字符串的k-mers的向量。 例子 [4,"ATCGAAGGTCGT"] → ["ATCG","TCGA","CGAA","GAAG","AAGG","AGGT","GGTC","GTCG","TCGT"] k >字符串长度?不返回任何结果/任何空结果: [4,"AC"]→ []或""或[""]

10
排序无用字符
TidB给出的非常好的答案激发了这一挑战。 在TidB的答案,每八个字符是正确的顺序:gnilwoB edoC(Code Bowling向后)。但是,其他字符串的排列顺序却是奇怪的,随机的。 您的挑战是解决此问题。 以一个(非空)字符串和一个正整数n作为输入。该字符串将包含范围为32-126(空格到波浪号)的ASCII字符。 您必须按升序对字符串进行排序(根据ASCII码值从左看),但是n从字符串的末尾开始跳过每个字符。例如,让我们以字符串abcdABC123作为输入,然后n=4,我们将得到: abcdABC123 <- Input string. (n=4) _b___B___3 <- These will not be sorted (every 4th starting from the end) 1_2AC_acd_ <- The remaining characters, sorted 1b2ACBacd3 <- The final string (the output) 另一个例子: 9876543210 <- Input string (n=2) _8_6_4_2_0 <- These will not be …

10
该列表中有多少个二十一点序列?
您的任务是查找在12张卡的有序列表中可以找到多少个不同的21点序列。 二十一点序列被定义为连续的卡序列,其点的总和正好为21。点的计数根据下表进行: Symbol | Name | Points Symbol | Name | Points -------+-------+-------- -------+-------+-------- 2 | Two | 2 9 | Nine | 9 3 | Three | 3 T | Ten | 10 4 | Four | 4 J | Jack | 10 5 | Five | 5 Q …

14
查找具有最小均值的子矩阵
您会得到一个n×m的整数矩阵,其中n,m> 3。您的任务是找到均值最低的3-by-3子矩阵,然后输出该值。 规则和说明: 整数将为非负数 可选的输入和输出格式 输出必须精确到至少2个十进制小数点(如果不是整数) 子矩阵必须由连续的行和列组成 测试用例: 35 1 6 26 19 24 3 32 7 21 23 25 31 9 2 22 27 20 8 28 33 17 10 15 30 5 34 12 14 16 4 36 29 13 18 11 Minimum mean: 14 100 65 2 …
21 code-golf  math  matrix 

16
修复我的胖手指
高尔夫挑战赛 我有一个问题,我的手指很胖,我经常在键盘上向右滑动一个键。 随着时间的流逝,这种担心恐怕会越来越糟。 偷听我做的每一次按键操作;向右移shifte pne! Befpre然后我想要一个程序(或functipn)将每个按键自动移回左键。 我将确保在其余的时间里把我的巨蛋打起来,以免引起仇视! 目的: 编写一个程序或函数,该程序或函数在标准QWERTY键盘上接受以下绿色键之一的输入,并在其左侧返回键的字符。 条件: •您可以假定运行此程序的人正在使用QWERTY键盘,如上图所示。 •输入和输出都不区分大小写,对于此挑战,您可以使用任何大小写(或大小写混合),并且如果需要,还可以假设所有输入都处于一种情况。 •如果由于某种原因您的语言无法允许用户输入返回键,则您可能会为此忽略一次击键 •这个挑战仅仅是按键的默认值,例如,如果该4键被按下,你可以假设它总是会4永不$ •您可以假设仅会按下绿色键。 例子Input-> Output: S-> a 4-> 3 =-> - [->p 这是代码高尔夫球,因此字节数最短的程序将获胜!

16
验证特征对
在这个挑战中,您将得到一个方矩阵A,一个向量v和一个标量λ。您将需要确定是否(λ, v)对应于的本征对A。即,是否Av = λv。 点积 两个向量的点积是逐元素相乘的总和。例如,以下两个向量的点积为: (1, 2, 3) * (4, 5, 6) = 1*4 + 2*5 + 3*6 = 32 注意,点积仅定义在两个相同长度的向量之间。 矩阵向量乘法 矩阵是2D值网格。的mX n矩阵具有m行和n列。我们可以将mx n矩阵想象成长度m向量n(如果我们取行)。 在mx n矩阵和大小n向量之间定义矩阵向量乘法。如果我们将mx n矩阵与大小n向量相乘,我们将获得大小m向量。i结果向量中的-th值是i矩阵的第-行与原始向量的点积。 例 1 2 3 4 5 Let A = 3 4 5 6 7 5 6 7 8 9 1 3 …

20
我如何最终得到这个FizzBu​​zz?
FizzBu​​zz非常简单,您可以向后退。在此挑战中,将为您提供FizzBu​​zz字符串的长度,并且必须提供产生该字符串的正整数。 描述 为了解决这个问题,n以下算法生成了一个FizzBu​​zz字符串。 以一个空字符串开头,对于每个i=1..n(包括): 如果i被3和整除5,则追加FizzBuzz到字符串。 如果i只是被3追加整除Fizz。 如果i只是被5追加整除Buzz。 如果不能i被整除,请附加的十进制表示形式i。 因此,例如FizzBuzz(15)以下内容: 12Fizz4BuzzFizz78FizzBuzz11Fizz1314FizzBuzz 您将被给予Length(FizzBuzz(n))并且必须确定n。您可以假设输入为正,并且始终为某些FizzBu​​zz字符串的长度。 规则 您的解决方案可以是任何标准可接受语言的完整程序或功能定义。您的程序/函数可以接受参数并以任何标准接受的方式返回答案。禁止出现标准漏洞。 您可能会假设输入是肯定有效的(描述了某些FizzBu​​zz字符串的长度),并且小于您语言中本机可表示的最大整数。 这是代码高尔夫,因此最短的字节数获胜。 例子 这是一些例子 Length(FizzBuzz(n)) -> n 1 -> 1 6 -> 3 15 -> 6 313 -> 100 3677 -> 1001 编辑 修复了最后一个测试用例。谢谢@SteadyBox。
21 code-golf 

8
哥伦布的颤抖序列
OEIS 在Golomb序列上有一个变体(A111439)。与Golomb的序列中一样,描述序列中出现的频率。但是此外,没有两个连续的数字可能是相同的。在建立序列时,始终选择不违反这两个属性的最小正整数。由于不允许连续的相同数字,该序列随着其增长而略微上下波动。以下是前100个字词:A(n)nA(n) 1, 2, 3, 2, 3, 4, 3, 4, 5, 6, 5, 6, 5, 6, 7, 6, 7, 8, 7, 8, 9, 8, 9, 8, 9, 10, 9, 10, 9, 10, 11, 10, 11, 10, 11, 10, 11, 12, 11, 12, 13, 12, 13, 12, 13, 12, 13, 12, …

24
标题中的相邻字符是什么?[3,4]!
标题故意拼写错误。阅读更多内容以找出原因。 您的任务:给定分隔的字符串或包含字符的列表 A,B,C,D,输出所有相邻的相等字符的索引。输出可以是多行上的多个字符串/整数,列表/数组或定界字符串。 所有输出应在列表或字符串或多行打印中。每条印刷线(如果有多条)只能包含1个字符串或数字。随便什么都可以。 输入/输出的标准方法。有标准漏洞。 例如,输入'ABCDDCBA'应该输出3,4或4,5,具体取决于它是0到1的索引,因为这些数字是其索引D和D下一个索引。 测试用例: 测试用例的输入为单个字符串,输出为- ,分隔字符串。输出为0索引,对每个输出项加1使其成为1索引。 Input: 'ABCDCABCD' Output: '' Input: 'AABBCCDD' Output: '0,1,2,3,4,5,6,7' Input: 'ABCDDDCBA' Output: '3,4,5' Input: 'ABBCDD' Output: '1,2,4,5' 这是代码高尔夫球,所以最短的代码获胜!

2
交换一些周期性和非周期性的部分
在每个有理数的十进制表示形式中p/q,您具有以下形式的周期尾部,非周期性首部和小数点前的部分: (before decimal point).(non-periodic)(periodic) 一些示例包括: 1/70 = 0.0142857... = (0).(0)(142857) 10/7 = 1.428571... = (1).()(428571) ## no non-periodic part 1/13 = 0.076923... = (0).()(076923) 3/40 = 0.075 = (0).(075)() ## no periodic part -2/15 = -0.13... = -(0).(1)(3) ## negative 75/38 = 1.9736842105263157894... = (1).(9)(736842105263157894) ## periodic part longer than …

8
阿诺德的猫地图
挑战 给定具有相同宽度和高度的彩色光栅图像*,输出在Arnold猫图下转换的图像。(*详细信息见下文) 定义 给定图像的大小,N我们假定像素的坐标由0和之间的数字给出N-1。 然后定义阿诺德的猫图如下: 坐标[x,y]处的像素移动到[(2*x + y) mod N, (x + y) mod N]。 这只是圆环上的线性变换:由于,黄色,紫色和绿色部分被映射回初始正方形mod N。 该地图(我们称之为f)具有以下属性: 它是双射的,意味着可逆:这是矩阵的线性变换[[2,1],[1,1]]。由于它具有行列式1且仅具有整数项,因此逆数也仅具有整数项并由给出[[1,-1],[-1,2]],这意味着它在整数坐标上也是双射的。 它是图像双射图组中的一个扭转元素N x N,这意味着如果将其应用足够多次,您将获得原始图像:f(f(...f(x)...)) = x保证将图应用于自身导致身份的次数减少或等于3*N。在下面的内容中,您可以看到经过多次重复应用Arnold的cat map之后的猫的图像,以及重复应用的外观的动画: 细节 您的程序不必一定要处理图像,但是2D数组/矩阵,字符串或类似的2D结构也是可以接受的。 您的(0,0)点位于左下角还是左上角都没关系。(或在其他任何角落,如果使用您的语言更方便)。请指定您在提交中使用的约定。 测试用例 矩阵形式([1,2,3,4]是第一行,1具有index (0,0),2具有index (1,0),5具有index (0,1)) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 maps …

20
查找路径上的所有坐标
给定2D字符串作为输入,可以是带有换行符的字符串,也可以是行列表,输出列表(x, y)中所有哈希(#)的坐标。输入将仅包含哈希和空格。(和换行符,如果您选择将输入作为2D字符串) 如果没有哈希,则可以输出任何内容。 输出应该明确地确定哪些数字与哪些配对。 例: ## 应该输出: (0,0), (1,0) 假定从左上方开始基于0的索引。您可以从任何角度开始,使用基于0或1的索引,和/或y首先输出。(例如形式y,x)。 更多测试用例(同样,全部使用基于0的左上(x, y)索引): # ##### # (4, 0), (0, 1), (1, 1), (2, 1), (3, 1), (4, 1), (0, 2) # ### ### # (0, 0), (2, 0), (3, 0), (4, 0), (0, 1), (1, 1), (2, 1), (4, 1) 请注意,这些测试用例全部按行列出,而不是按照路径列出。 …

30
算上我的零钱
您的任务是对包含字符串“ quarter”,“ dime”,“ nickel”和“ penny”的数组进行无数次排序(无特定顺序),然​​后对其进行排序,以使它们的顺序为:(quarter dime nickel penny换句话说,最高至最低货币价值)。 规则 您的程序必须将包含美国硬币名称的数组作为输入,并按货币值从大到小对它们进行排序。 对于那些不是来自美国或不使用零钱的人,美国硬币的价值(从最大到最小)是: 季度:25美分 一角钱:10美分 镍:5美分 竹enny:1分 您可以按照任何希望的方式对该数组进行排序,只要输出按上面显示的货币值排序即可。 输入可以以任何方式获取,无论是命令行参数还是STDIN。 输入数组将全部为小写字符串,如下所示: quarter dime nickel nickel quarter dime penny penny 输入和输出的实际格式由您决定。 测试用例 "penny nickel dime quarter" -> "quarter dime nickel penny" "nickel penny penny quarter quarter quarter dime dime dime dime" -> "quarter quarter …

8
包装季节性礼物
任务 给定一个包装器元素和一个非锯齿状的3D数组,将数组顶部,底部和四周包裹起来。您必须同时处理字符数据和数字数据,但是包装器和当前数据将具有相同的数据类型。 角色示例 对于字符数据,您可以选择处理单个字符的3D数组或字符串的2D数组: 给定2层2行4列字符数组 [[["Y","o","u","r"], ["g","i","f","t"]], [["g","o","e","s"], ["h","e","r","e"]]] 和字符".",回答4层,4行,6列字符数组 [[[".",".",".",".",".","."], [".",".",".",".",".","."], [".",".",".",".",".","."], [".",".",".",".",".","."]], [[".",".",".",".",".","."], [".","Y","o","u","r","."], [".","g","i","f","t","."], [".",".",".",".",".","."]], [[".",".",".",".",".","."], [".","g","o","e","s","."], [".","h","e","r","e","."], [".",".",".",".",".","."]], [[".",".",".",".",".","."], [".",".",".",".",".","."], [".",".",".",".",".","."], [".",".",".",".",".","."]]] 或给出2行2列的4个字符的字符串数组 [["Your", "gift"], ["goes", "here"]] 和字符".",回答4行4列的6个字符的字符串数组 [["......", "......", "......", "......"], ["......", ".Your.", ".gift.", "......"], ["......", ".goes.", ".here.", "......"], ["......", "......", "......", "......"]] 数值示例 给定2层2行2列数字数组 …

3
考拉,​​螃蟹和马来illa
给定两个正整数X和Y,请输出以下三种ASCII字符动物的任意组合,以使输出尽可能精确地包含X逗号(,)和Y句点(.)。 考拉: 1个逗号,2个周期 <.,.> 螃蟹: 2个逗号,2个周期 ,<..>, Commapillar: 3个或更多逗号,1个周期 <,,,.> 或<,,,,.>或<,,,,,.>或<,,,,,,.>或<,,,,,,,.>等 如果这些动物的组合不能产生正好X个逗号和Y个周期,请输出一个会伪装失败的逗号: ~<.,,>~~ 输出的动物可以是任何数量和任何顺序。它们可以在字符串,空格或换行符之间分隔,也可以在每个动物都是一个元素的列表中。 例如,对于X = 7,Y = 5,这些都是有效输出(用空行分隔): <.,.> <.,.> <,,,,,.> <.,.> <,,,,,.> <.,.> ,<..>, <.,.> <,,,,.> <,,,,.> ,<..>, <.,.> ,<..>, <,,,.> ,<..>, [",<..>,", ",<..>,", "<,,,.>"] (list syntax depends on language) 请注意(至少在此示例中),有多组动物可以工作。但是请记住,如果存在,则只需输出任何一种有效的解决方案。动物的数量或不同动物的数量无关紧要。 对于X = 3,Y = 3或X = 1,Y …

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.