Questions tagged «array-manipulation»

通过使用和操纵数组来解决特定问题的竞赛。

3
查找字符串中的模式
在这种挑战下,您的任务是找到具有给定结构的子字符串。 输入项 您的输入应为两个非空的字母数字字符串,一个模式 p和一个text t。这个想法是,的每个字符都p代表一个连续的非空子字符串,t该子字符串彼此相邻出现,并p表示它们的串联。相同的字符对应于相同的子字符串。例如,模式aa代表任何非空正方形(通过将较短的字符串与其自身连接而获得的字符串)。因此,模式aa可以匹配子字符串byebye,并且每次a匹配bye。 输出量 如果文本t包含p匹配的子字符串,则您的输出应为该子字符串,并:在与的字符相对应的字符串之间插入冒号p。例如,如果我们有t = byebyenow和p = aa,那么bye:bye它是可接受的输出。匹配子字符串可能有多个选择,但是您只能输出其中之一。 如果t不包含匹配的子字符串,则您的输出将是悲伤的表情:(。 规则和说明 的不同字符p可以对应相同的子字符串,因此p = aba可以匹配字符串AAA。请注意,这些字符必须对应于非空字符串;特别是,如果p长于t,则输出必须为:(。 您可以编写完整的程序或函数,还可以更改两个输入的顺序。最低字节数获胜,并且不允许出现标准漏洞。 测试用例 以格式给出pattern text -> output。注意,可能存在其他可接受的输出。 a Not -> N aa Not -> :( abcd Not -> :( aaa rerere -> re:re:re xx ABAAAB -> A:A MMM ABABBAABBAABBA -> ABBA:ABBA:ABBA x33x 10100110011001 -> 10:1001:1001:10 …
17 code-golf  string  code-golf  ascii-art  geometry  code-golf  ascii-art  code-golf  sequence  stack  code-challenge  number  sequence  answer-chaining  code-golf  code-challenge  math  combinatorics  binary-matrix  code-golf  number  code-golf  cryptography  bitwise  code-golf  sudoku  code-golf  brainfuck  metagolf  code-golf  probability-theory  number-theory  primes  fewest-operations  factoring  golf-cpu  code-golf  restricted-source  code-golf  graphical-output  sequence  binary  code-golf  tips  c#  code-golf  geometry  code-golf  graphical-output  fractal  code-golf  number  sequence  code-golf  number  array-manipulation  popularity-contest  game  board-game  code-golf  puzzle-solver  grid  code-golf  ascii-art  geometry  grid  tiling  code-golf  ascii-art  whitespace  balanced-string  code-golf  card-games  king-of-the-hill  javascript  code-golf  whitespace  balanced-string  code-golf  code-golf  math  abstract-algebra  code-golf  java  code-golf  interpreter  stack  code-golf  base-conversion  code-golf  tips  code-golf  ascii-art  geometry  brainfuck  metagolf  code-challenge  math  quine  code-generation  code-golf  number  kolmogorov-complexity  arithmetic  expression-building  code-golf  string  code-golf  quine  popularity-contest  code-golf  base-conversion  code-challenge  image-processing  code-golf  conversion  coding-theory 

10
升序矩阵
“升序矩阵”是整数(包括0)的无限矩阵,其中任何元素是最小的可用元素,之前尚未在相应的行和列上使用: | 1 2 3 4 5 6 ... --+---------------- 1 | 0 1 2 3 4 5 ... 2 | 1 0 3 2 5 4 ... 3 | 2 3 0 1 6 7 ... 4 | 3 2 1 0 7 6 ... 5 | 4 5 …
17 code-golf  math  matrix  programming-puzzle  code-golf  music  code-challenge  programming-puzzle  code-golf  fastest-code  code-golf  number  game  code-golf  combinatorics  code-golf  math  sequence  restricted-complexity  code-golf  number  random  code-golf  array-manipulation  code-golf  math  matrix  code-golf  number  sequence  counting  code-golf  math  number  sequence  popularity-contest  number  sequence  code-golf  music  code-golf  number  code-golf  ascii-art  arithmetic  code-golf  code-golf  number  code-golf  code-challenge  array-manipulation  code-golf  grammars  code-challenge  polyglot  code-golf  game  math  python  programming-puzzle  code-challenge  king-of-the-hill  code-challenge  fastest-code  primes  number-theory  number-theory  primes  fastest-code  factoring  popularity-contest  compile-time  code-golf  math 

7
无边桌
在此挑战中,您将把来自字母的字母放置在笛卡尔平面中,并将结果输出为文本。 您的输入将包含在具有3个参数的列表列表中: X坐标 Y坐标 串 怎么样? 我们知道笛卡尔平面包含2个轴(X,Y)(X,ÿ)(X, Y)和4个象限,其中坐标的符号为,,(- ,- )和(+ ,- )。例如(X,Y)(X,ÿ)(X,Y)(+ ,+ )(+,+)(+,+)(- ,+ )(-,+)(−,+)(- ,- )(-,-)(−,−)(+ ,− )(+,-)(+,−) 将以下3 x 3矩阵视为笛卡尔平面 (- 1 ,1 )(- 1 ,0 )(− 1 ,− 1 )(0 ,1 )(0 ,0 )(0 ,− 1 )(1 ,1 )(1 ,0 )(1 ,− 1 )(-1个,1个)(0,1个)(1个,1个)(-1个,0)(0,0)(1个,0)(-1个,-1个)(0,-1个)(1个,-1个)\begin{matrix} (-1,1) & …

2
魔方排序矩阵(又称圆环拼图)
这种代码挑战的想法很简单:给定整数矩阵,让我们通过应用Rubik风格的移动对其进行排序。这意味着您可以选择单个行或列,并向任意方向旋转其元素: [1, 3, 2, 4] => [3, 2, 4, 1] (rotate left for rows/up for columns) [1, 3, 2, 4] => [4, 1, 3, 2] (rotate right for rows/down for columns) 因此,给定任意维度的整数矩阵,仅应用这些Rubik样式的转换对其元素进行排序。矩阵 ⎡⎣⎢一种11一种21一种31一种12一种22一种32一种13一种23一种33一种14一种24一种34⎤⎦⎥[一种11一种12一种13一种14一种21一种22一种23一种24一种31一种32一种33一种34] \begin{bmatrix} a_{11} & a_{12} & a_{13} & a_{14} \\ a_{21} & a_{22} & a_{23} & a_{24} \\ …

8
按坡度对区域进行分类
定义 的ķ 个的大小的正方形矩阵的环Ñ,其中1≤ķ≤天花板(N / 2)是通过的元件形成的列表ķ 个和(N-K + 1)个行和列,但没有第一个和最后一个k-1个元素。 例: 矩阵: 1 2 3 4 5 6 7 8 9 1 8 7 6 5 4 3 2 1 9 8 7 6 5 4 3 以圆环分隔: + ------------------- + | 1 2 3 4 5 | | + ----------- + …

26
子数组中的数字相等
给定一个带有length >=3和的数字数组length % 3 == 0 [1, 2, 3, 4, ...] 您将其拆分为长度为3的子数组 [[1, 2, 3], [4, 5, ...], [... 并返回一个数组 [0] =>子数组中所有数字均相等的个案数 [1] =>如果子数组中的所有数字都不相等,则子数组中只有两个数字相等的情况数 示例和测试用例: 输入:[2, 4, 2, 5, 5, 5, 4, 2, 1, 3, 3, 1]输出[1, 2] 这是因为 [[2, 4, 2], [5, 5, 5], [4, 2, 1], [3, 3, …

13
运行基因交叉算法
您的任务是接受两个基因序列和一个“交叉点”序列作为输入,并返回由所示交叉产生的基因序列。 我的意思是说您有序列[A, A, A, A, A, A, A]和[Z, Z, Z, Z, Z, Z, Z],并且交叉了2和的点5。结果序列为[A, A, Z, Z, Z, A, A],因为: 穿越这里:VV 指数:0 1 2 3 4 5 6 基因1:AAAAAAA 基因2:ZZZZZZZ 结果:AAZZZAA ^^ 请注意,尽管我在这里使用字母是为了清楚起见,但实际的挑战是将数字用于基因。 结果是第一个序列直到遇到交叉点,然后结果从第二个序列开始直到遇到另一个交叉点,然后结果从第一个序列开始直到遇到一个交叉点... 输入: 输入可以是任何合理的形式。这两个序列可以是一对,点是第二个参数,所有三个都可以是单独的参数,一个的三元组(genes 1, genes 2, cross-points),一个具有命名键的映射... 交叉点将始终是有序的,并且将始终是入站。不会有重复的点,但是交叉点列表可能为空。 基因序列将始终具有相同的长度,并且将为非空。 索引可以基于0或1。 基因将始终是0-255范围内的数字。 哪个参数是“ genes 1”或“ genes 2”都没有关系。在没有交叉点的情况下,结果可以完全是“基因1”或“基因2”。 输出量 …

30
挑战之三:移动平均线
注意:这是一系列阵列操作挑战中的第3条。对于上一个挑战,请单击此处。 列表的移动平均值 列表的移动平均值是通过对原始重叠的小子列表进行平均而得出的新的平滑列表。 在创建移动平均线时,我们首先使用一定的“窗口大小”生成重叠子列表的列表,每次将此窗口向右移一次。 例如,给定列表[8, 4, 6, 2, 2, 4]和窗口大小3,子列表将是: [8, 4, 6, 2, 2, 4] Sublists: ( ) <- [8, 4, 6] ( ) <- [4, 6, 2] ( ) <- [6, 2, 2] ( ) <- [2, 2, 4] 然后,我们计算每个子列表的平均平均值以获得结果:([6.0, 4.0, 3.3, 2.7]每个值四舍五入到小数点后一位)。 挑战 你的任务是写一个程序或其中,给定一个列表功能大号和整数1个≤N≤长度(L) ,计算移动平均为大号使用窗口大小Ñ。 规则: 您的程序可能使用整数除法或浮点除法。对于浮点除法,只要值是正确的,就可以允许由于数据类型的限制而产生的小误差。 …

7
测量一堆原木
介绍 这是长度为5的对数: ##### 我想将这些原木堆在一起。我的操作方式是将新的日志从右侧滑动到最上面的日志,并在它们的左端或右端对齐时停止滑动(不要问为什么)。如果新日志更长,它将一直滑动到最上面的日志的左端: ######## <- ##### 如果更短,则仅滑动直到其右端对齐: ###### <- ######## ##### 当我将更多的原木滑入桩中时,它们的位置由当前最上面的原木确定: ## ###### ### #### ## ###### ######## ##### 这看起来在物理上是不可能的,但让我们假装它可行。 任务 您的输入应该是一个非空的正整数列表,代表我的日志长度。最左边的数字是我放到堆中的第一个原木,因此它最终在底部。在上面的示例中,输入为[5,8,6,2,4,3,6,2]。对于所得桩的每一列,您的输出应为越过该列的原木数量。在以上示例中,正确的输出为[2,2,3,3,3,2,4,6,3,3,1,2,2]。 规则和计分 输入和输出可以采用任何合理的格式。输出只能包含正整数,即它不得包含前导或尾随0。普通的代码高尔夫球规则适用:您可以编写完整的程序或函数,最低字节数获胜,并且禁止标准漏洞。 测试用例 [1] -> [1] [4] -> [1,1,1,1] [3,2] -> [1,2,2] [2,3] -> [2,2,1] [2,2,2] -> [3,3] [2,3,2] -> [2,3,2] [3,2,3] -> [1,3,3,1] [1,3,2,2,1,3,1] -> …

14
带领带的马里奥赛车得分
我在为该网站提出另一个挑战时遇到了这个问题。在这项挑战中,我使用“ Mario Kart 8 Scoring ”。玩家在第k位获得的积分数量由此1索引数组表示:[15,12,10,9,8,7,6,5,4,3,2,1]。因此,第一名获得15分,第二名获得12分,依此类推。 像这样分配点很容易,但是棘手的部分是如何处理领带的。我要做的是给每个并列玩家平均每个并列位置的得分。例如,如果只有第1名和第2名并列,则两个玩家都将获得(15 + 12)/ 2 = 13.5分。(注意:允许四舍五入到最接近的整数,因此13或14都可以接受。)然后,第3-12位获得其位置的正常点数。 挑战 给定12个非负整数分数,这些分数递减排序,输出每个玩家获得的积分数。您也可以将点列表[15,12,10,9,...]作为输入。请注意,每个玩家获得的积分数并不取决于分数的实际值,而是取决于它们与其他分数的比较方式。 测试用例 [21,21,15,14,12,9,6,5,4,3,2,1] => [ 14,14,10,9,8,7,6,5,4,3,2, 1] [20,15,15,15,10,9,8,7,6,5,4,3] => [15,10,10,10,8,7,6,5,4,3,2, 1] 说明:(12 + 10 + 9)/ 3 = 10.3333 [1,1,1,1,1,1,1,1,1,1,1,1,1] => [ 7,7,7,7,7,7,7,7,7,7,7,7, 7 ] 说明:(15 + 12 + 10 + 9 + 8 + 7 + …

10
风险之战:崩溃
给定两个用于在Risk中进行战斗的掷骰子清单,您的程序或功能必须输出每个玩家损失的部队数量。 背景 您不必阅读本手册,因为它只是背景知识。跳至“任务”子标题,继续保持原样。 在风险游戏中,一个玩家可以攻击另一位玩家(实际上,这是获胜的必要条件)。战斗的结果取决于掷骰子。每次战斗都是连续进行的子战,每个玩家可能会损失最多2的军队。 在一个子战中,防御者和攻击者各自掷出几个骰子,其骰子数量可能根据与该挑战无关的情况而变化。将攻击者的最高价值的骰子与防御者的最高价值的骰子进行比较。如果攻击者的死亡人数高于防御者的死亡人数,则防御者将输掉一件。否则,攻击者将丢失一件。 然后,如果两个玩家都至少有两个骰子,则比较两个玩家中第二高价值的骰子。同样,如果攻击者的死率高于防御者的死率,则防御者将输掉一件。否则,攻击者将丢失一件。 (防御者赢得平局。如果防御者和攻击者都掷出a 4,则攻击者将输掉一块。) 在Wikipedia文章的子战斗中,攻击者的骰子为红色,而防御者的骰子为白色。攻击者的最高骰子是4,防御者的最高骰子是3。由于攻击者更高,因此防御者输了一块。第二高的是3攻击者和2防御者。由于攻击者再次处于较高位置,因此防御者输了另外一块。因此,在此子战斗中,攻击者没有损失,防御者也没有损失2。 请注意,不比较第三高的片段。这是因为后卫在一个子战中最多有两个骰子,因此没有第三高的骰子可供比较。 任务 给定攻击者和防御者的未分类骰子掷骰(整数在1到6之间,包括1到6),以任何方便的形式输出每个玩家损失的军队数量。输出可以采用任何方便的形式,只要它具有指示五种可能性的不同输出即可。您必须指出问题中有哪些不同的输出。 输出确定如下:以def=0和开头atk=0。如果攻击者的掷骰子列表的最大值大于防御者的掷骰子列表的最大值,则增加def。否则,增加atk。 如果两个骰子列表的长度都至少为2,则:如果攻击者的骰子列表的第二个最大值大于列表的第二个最大值,则递增def,否则递增atk。 最后,程序或函数必须为以下5种输出可能性中的每一种输出唯一的标识符: ╔═══╦═══╗ ║atk║def║ ╠═══╬═══╣ ║ 1 ║ 0 ║ ║ 0 ║ 1 ║ ║ 2 ║ 0 ║ ║ 1 ║ 1 ║ ║ 0 ║ 2 ║ ╚═══╩═══╝ 例 防御者:[3, 2] 攻击者:[2, 4, 1] …

9
交替符号矩阵验证
一个交替的符号矩阵是n由n组成的数字矩阵-1,0,1,使得: 每行和每一列的总和为1 每行和每列中的非零条目以符号交替 这些矩阵概括了置换矩阵,并且对于给定n的时间,此类矩阵的数量令人关注。它们在计算矩阵行列式的Dodgson凝聚方法(以Charles Dodgson命名,更名为Lewis Carroll)中自然发生。 以下是4 x 4交替符号矩阵的一些示例: 0 1 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 -1 1 1 0 -1 1 1 0 0 0 0 1 -1 1 1 …

10
果酱不要那样添加
背景 果冻的算术原子自动矢量化。实际上,只要x和y y是数字或数字的参差不齐的数组。Jelly的源代码使用通用矢量化程序实现了此行为,但是对于这一挑战,我们将仅考虑将整数和嵌套的整数数组相加。 定义 限定的深度X为0,如果X是一个整数,如1,如果它是整数(可能是空的)平面阵列,并且作为n + 1个,如果它包含深度的至少一种元素Ñ和无深度的元素K> ñ。 这样,1的深度为0,[]和[1]和[1,1]的深度为1,[[],[]]和[[1],[1]]以及[[1]]和[1 ,[]]的深度为2,[1,[1,[1]]]的深度为 3,依此类推。 操作X + Y的定义如下。 如果x和y的深度为0,则返回它们的和。 如果x和y具有相等但正的深度,则将+递归应用于x的所有项和y的对应项。 如果x和y的长度不同,则将较长数组的尾部附加到和数组。 返回结果。 如果x的深度严格小于y的深度,则对x和y的所有项递归应用+,并返回结果。 如果y的深度严格小于x的深度,则相反。 例如,考虑操作[1,[2,3],[4]] + [[[10,20],[30],40,50],60]。 左参数的深度为2,而右参数的深度为3,因此我们计算[1,[2,3],[4]] + [[10,20],[30],40,50 ]和[1,[2,3],[4]] + 60。 [1,[2,3],[4]]和[[10,20],[30],40,50]都具有深度2,因此我们计算出1 + [10,20],[2,3] + [30]和[4] + 40。 1 + [10,20] = [1 + 10,1 + 20] = [11,21] [2,3] + [30] …

20
分解一个数字!
您的任务是使用以下格式分解数字。 这与基本转换类似,不同之处在于digits,您列出了values,而不是在基本列表中列出,这样列表就加到了输入上。 如果给定的基为n,则列表中的每个数字都必须采用的形式k*(n**m),其中0<=k<n和m在整个列表中都是唯一的。 眼镜 任何合理的输入/输出格式。您的程序/功能需要2个输入并输出一个列表。 输出列表可以是任何顺序。 0 可以排除或包含。 0允许领导。 允许内置。 测试用例 number base converted list input1 input2 output 123456 10 [100000,20000,3000,400,50,6] or [6,50,400,3000,20000,100000] 11 2 [8,2,1] or [0,0,0,0,8,0,2,1] 727 20 [400,320,7] 101 10 [100,1] or [100,0,1] 计分 这是代码高尔夫球。以字节为单位的最短解决方案获胜。
16 code-golf  number  sequence  number-theory  base-conversion  code-golf  bitwise  hashing  code-golf  string  ascii-art  whitespace  code-golf  math  code-golf  code-golf  image-processing  counting  code-golf  math  arithmetic  checksum  code-golf  code-golf  math  arithmetic  number-theory  code-golf  array-manipulation  random  code-golf  string  code-golf  math  ascii-art  base-conversion  code-golf  graphical-output  geometry  3d  code-golf  math  linear-algebra  matrix  code-golf  math  number  sequence  code-golf  array-manipulation  code-golf  math  matrix  linear-algebra  code-golf  number  sequence  counting  code-golf  string  code-golf  string  restricted-source  quine  sorting  code-golf  string  geometry  code-golf  string  code-golf  networking  code-golf  base-conversion  code-golf  math  matrix  code-golf  arithmetic  linear-algebra  matrix  code-golf  number  arithmetic  grid  code-golf  number  source-layout  code-golf  string  bitwise  checksum  code-golf  array-manipulation  code-golf  string  probability-theory  code-golf  tips  code-golf  sequence  code-golf  string  math  sequence  calculus  code-golf  string  palindrome  bioinformatics  code-golf  math  combinatorics  counting  permutations  code-golf  parsing  logic-gates  code-golf  arithmetic  number-theory  combinatorics  code-golf  math  sequence  polynomials  integer  code-golf  string  ascii-art  chess  code-golf  string  code-golf  number  code-golf  string  ascii-art  parsing  code-golf  code-golf  number  natural-language  conversion  code-golf  arithmetic  code-golf  string  code-golf  ascii-art  decision-problem 

10
列的块对角矩阵
灵感来自于Stack Overflow的此问题。 给定一个矩阵A,创建一个矩阵B,使的列A以块对角线的方式排列。例如,给定 1 2 3 4 5 6 输出将是 1 0 0 4 0 0 0 2 0 0 5 0 0 0 3 0 0 6 规则 输入和输出可以采用2D数组,嵌套数组或具有不同行和列分隔符的字符串的形式。 输入(matrix A)中的数字将为正整数。 一元格式是允许的,只要以某种合理的方式在输出中显示零即可。例如,可以使用引号将每个数字括起来显示上述结果: '1' '' '' '1111' '' '' '' '11' '' '' '11111' '' '' '' '111' '' '' …

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.