Questions tagged «array-manipulation»

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

30
最短的电源设置实施
问题定义 打印出给定集合的幂集。例如: [1, 2, 3] => [[], [1], [2], [3], [1, 2], [1, 3], [2, 3], [1, 2, 3]] 每个元素都将打印在单独的行上,因此上面的示例将打印为: [] [1] [2] ... [1, 2, 3] 示例代码(在D,这里是 python示例): import std.stdio; string[][] powerset(string[] set) { if (set.length == 1) { return [set, []]; } string[][] ret; foreach (item; powerset(set[1 .. …

18
得分游戏
背景 在Boggle中,通过将玩家找到的每个唯一单词的得分相加(即,一个以上玩家找到的任何单词的得分为0分),为该回合得分。根据每个单词中字母的数量来计算分数,如下所示: 3个字母:1分 4个字母:1分 5个字母:2分 6个字母:3分 7个字母:5分 8个或更多字母:11分 挑战 在这个挑战中,编写一个程序或函数,该程序或函数接受代表每个玩家单词的字符串列表的列表,并输出玩家分数的列表。您可以假设至少有2位玩家,所有单词均为3个或更多字母,并且全部为小写字母(如果愿意,可以全部为大写字母)。您还可以假设每个玩家只会使用每个单词一次;也就是说,任何玩家的列表都不会包含重复项。这是代码高尔夫球,因此最短答案以字节为单位。 规则 输入可以采用任何合理的格式。示例包括字符串列表,逗号分隔的字符串列表,输入的每一行上的逗号分隔的字符串等。输出可以采用整数列表的形式(或与您的语言相当的形式),也可以打印使用您选择的分隔符(例如换行符)将其输出到stdout的值。 测试用例 输入=>输出 [["cat","dog","bird","elephant"], ["bird","dog","coyote"], ["dog","mouse"]] => [12,3,2] [["abc","def","ghi"], ["ghi","def","abc"]] => [0,0] [["programming","puzzles"], ["code","golf"], []] => [16,2,0]

17
媒人媒人让我火柴
(尽管我们不会找到Find或捕捉到tryCatch) 这是实现一些有趣的R函数的多部分系列的第二部分。第一部分可以在这里找到。 任务: 您将以尽可能少的字节实现R的match功能。 输入: x,可能是空的整数列表/数组 table,可能是空的整数列表/数组 nomatch,一个整数值 incomparables,可能是空的整数列表/数组 输出: 一个O长度等于的整数的单个数组/整数列表x,其中每个值O[i]表示以下任一值: 第一个值的索引j,其中tabletable[j]==x[i] nomatch,这表明在没有价值table等于x[i] 或那x[i]是在列表中incomparables。 测试用例 All in the form x, table, nomatch, incomparables -> output outputs [], [1,2,3], 0, [5] -> [] [1, 2, 3], [], 0, [5] -> [0, 0, 0] [9, 4, 3, 6, 3], [9, 8, 7, …

12
像蛇一样猛击
想法 我们之前已经完成了矩阵螺旋旋转,完整旋转甚至对角旋转,但据我所知,还没有蛇旋转! 什么是蛇旋转? 想象一下矩阵的行来回蛇行,它们之间的分隔线就像长队列的分隔线一样: +--------------+ 1 2 3 4 5| +------------ | |10 9 8 7 6| | +-----------+ |11 12 13 14 15| +------------ | 20 19 18 17 16| +--------------+ 现在,假设将这些项目旋转2。每个项目都会前进,就像人们在一条直线上移动一样,最后的项目会溢出并回到起点: +--------------+ --> 19 20 1 2 3| +------------ | | 8 7 6 5 4| | +-----------+ …

30
从数组创建块
您的任务是编写一个给定数组和数字的程序,您需要将数组拆分为大小为number的块。 规则 您的程序将收到一个数组A以及一个正整数n。然后n,如果该字符串的长度不能被n结尾处的剩余数整除,则应将数组拆分为一定长度的块,应将其视为自己的块。 如果n大于array的长度A,则需要返回array A,例如:如果n = 4和array A = [1,2,3],则应返回[1,2,3] 该数组可以包含任何类型,而不是数字。 您不应从左到右更改任何项目的顺序(或方向)。例如if n = 2和A= [1,2,3]。任何结果而不是[[1,2],[3]]无效的。 测试用例 n A Output 2 [1,2,3,4,5,6] [[1,2],[3,4],[5,6]] 3 [1,2,3,4,5,6] [[1,2,3],[4,5,6]] 4 [1,2,3,4,5,6] [[1,2,3,4],[5,6]] 这是代码高尔夫,因此每种语言的最短字节将成为赢家。

23
指针跳
假设我们有一个长度为n的数组psps\texttt{ps},其中的指针指向该数组中的某个位置:“ 指针跳跃 ”过程将把每个指针都设置为其指向的指针所指向的位置。nnn 出于此挑战的目的,指针是数组元素的(从零开始)索引,这意味着数组中的每个元素都将大于或等于000且小于nnn。使用此表示法,可以将过程表述为: for i = 0..(n-1) { ps[i] = ps[ps[i]] } 这意味着(针对此挑战),指针将按顺序进行就地更新(即,先降低索引)。 例 让我们来看一个例子,ps = [2,1,4,1,3,2]ps = [2,1,4,1,3,2]\texttt{ps = [2,1,4,1,3,2]}: i = 0:the element at position ps[0] = 2 points to 4→ps = [4,1,4,1,3,2]i = 1:the element at position ps[1] = 1 points to 1→ps = [4,1,4,1,3,2]i = …

17
分割标记的标记
挑战 马克是一个学生,他N在一行中以串联的方式获得他的分数。 面临的挑战是将自己的标记分开,知道每个标记只能是0或1或2或3或4或5或6或7或8或9或或10。 输入项 N 自然数和一行。 输出量 一组自然数。 例 N, One line------------------> Set of marks 3, '843'---------------------> [8, 4, 3] 1, '0'-----------------------> [0] 2, '1010'--------------------> [10,10] 3, '1010'--------------------> [1,0,10] or [10,1,0] 4, '1010'--------------------> [1,0,1,0] 9, '23104441070'-------------> [2, 3, 10, 4, 4, 4, 10, 7, 0] 12,'499102102121103'---------> [4, 9, 9, 10, …

15
我的数组应该等于这个,但事实并非如此!
给定一个整数数组,a其中包含n个整数和一个整数x;从中删除最少的元素a,使之和a等于x。如果a不能形成的组合,则x返回假值。 正如评论中指出的那样,这是x的总和的最大值,对不起我的小数学头脑。自大学以来,我忘记了很多条款。 示例(真实): f([1,2,3,4,5,6,7,8,9,10], 10) = [1,2,3,4] f([2,2,2,2,2,2,2,2,2], 10) = [2,2,2,2,2] f([2,2,2,2,-2,-2,-2,-4,-2], -8) = [2,2,-2,-2,-2,-4,-2] f([-2,-4,-2], -6) = [-4,-2] OR [-2,-4] f([2,2,2,4,2,-2,-2,-2,-4,-2], 0) = [2,2,2,4,2,-2,-2,-2,-4,-2] (不变) f([], 0) = [] (零和的情况不变) 示例(错误,任何一致的非数组值): 不可能提出理由: f([-2,4,6,-8], 3) = falsy (E.G. -1) 零和案例: f([], non-zero number) = falsy (E.G. -1) 注意:像这样的任何值[-1]都不能有效地伪造,因为它可能是真实的输出。 规则: 输入可以采用数组形式,也可以作为参数列表,最后一个或第一个为x。 …

9
我的骰子矩阵值多少钱?
输入项 由3x3子矩阵并排放置的非空二进制矩阵。 任务 您的任务是在3x3子矩阵中识别有效的骰子模式(如下所述)。每个有效模式都值得相应骰子的值。无效的模式值0。 输出量 有效骰子值的总和。 骰子图案 1 :⎛⎝⎜0, 0, 00,1, 00, 0, 0⎞⎠⎟3:⎛⎝⎜1 ,0,00,1, 00, 0,1⎞⎠⎟要么 ⎛⎝⎜0, 0,10,1, 01 ,0,0⎞⎠⎟5 : ⎛⎝⎜1 ,0,10,1, 01 ,0,1⎞⎠⎟2 : ⎛⎝⎜1 ,0,00, 0, 00, 0,1⎞⎠⎟要么 ⎛⎝⎜0, 0,10, 0, 01 ,0,0⎞⎠⎟4: ⎛⎝⎜1 ,0,10, 0, 01 ,0,1⎞⎠⎟6 : ⎛⎝⎜1 ,0,11 ,0,11 ,0,1⎞⎠⎟要么 ⎛⎝⎜1 ,1 ,10, …

14
切掉矩阵以获得所需的总和
定义 给定非负整数和非负整数的矩阵,我们将定义为“斩波”函数,该函数删除中包含k的所有行和所有列。M中号MkķkFkFķF_kM中号Mkķk 例: M=⎛⎝⎜⎜⎜619612805854⎞⎠⎟⎟⎟F5(M)=(1620)中号=(61个51个28985604)F5(中号)=(1个260)\begin{align}M=\pmatrix{\color{red}6&\color{red}1&\color{white}{\bbox[red,1pt]{5}}\\1&2&\color{red}8\\\color{red}9&\color{red}8&\color{white}{\bbox[red,1pt]{5}}\\6&0&\color{red}4}\\\\F_5(M)=\pmatrix{1&2\\6&0}\end{align} 你的任务 鉴于M中号M和目标总和S小号S,你的任务是找到的所有可能值kķk使得在剩余元素的总和Fk(M)Fķ(中号)F_k(M)等于S小号S。 例: 给定上述矩阵M中号M和S=9小号=9S=9: k=5ķ=5k=5是一个解决方案,因为F5(M)=(1620)F5(中号)=(1个260)F_5(M)=\pmatrix{1&2\\6&0}和1+2+6+0=91个+2+6+0=91+2+6+0=9 k=1ķ=1个k=1是唯一可能的其他解决方案:F1(M)=(54)F1个(中号)=(54)F_1(M)=\pmatrix{5\\4}和5+4=95+4=95+4=9 因此,预期输出为{1,5}{1个,5}\{1,5\}。 澄清和规则 确保输入至少接受一种解决方案。 在原始矩阵中的元素的总和被保证是大于S小号S。 您可以假设S>0小号>0S>0。这意味着空矩阵永远不会导致解决方案。 k的值kķk可以按任何顺序以任何合理,明确的格式打印或返回。 你被允许不进行重复数据删除的输出(例如或对于上面的例子被认为是有效的答案)。[ 1 ,5 ,1 ,5 ][1,1,5,5][1个,1个,5,5][1,1,5,5][1,5,1,5][1个,5,1个,5][1,5,1,5] 这是代码高尔夫球。 测试用例 M = [[6,1,5],[1,2,8],[9,8,5],[6,0,4]] S = 9 Solution = {1,5} M = [[7,2],[1,4]] S = 7 Solution = {4} M = [[12,5,2,3],[17,11,18,8]] S = 43 Solution = …

11
零的权重
给定一个有序的数字列表(可能带有前导零),垂直排列数字,然后让所有零完全下降到底部,所有突出部分都下降到最底部的开放插槽。输出结果整数,除去前导零。 工作实例 假设我们得到以下输入: ['0000312941295', '239124000124581598', '32852353800451258', '10235923505185190', '1491359102149'] 首先,我们将其垂直排列: 0000312941295 239124000124581598 32852353800451258 10235923505185190 1491359102149 然后,逐列地将零“滴过”其他数字,使它们停留在底部并“推”其他数字。这将导致前几个步骤如下: 2000312941295 339124000124581598 12852353800451258 10235923505185190 0491359102149 ^ 2300312941295 329124000124581598 14852353800451258 10235923505185190 0091359102149 ^ 2390312941295 328124000124581598 14252353800451258 10935923505185190 0001359102149 ^ ... 2391312941295 328524538124581598 14232323525451258 10915991001185190 0000350000049 ^ 接下来,放下所有悬垂物,就好像重力将它们像沙子一样拉下来。 2391312941295 3285245381245 1598 14232323525458258 10915991001181190 00003500000495 ^ 2391312941295 3285245381245 …

20
反向范围后继
给定正整数n,请执行以下操作(并输出每个阶段): 从包含n副本的列表开始n。 执行以下n次数: 在i步骤th,逐渐减少i列表的th条目,直到到达i 因此,举例来说,如果给定的n是4,那么你下手[4,4,4,4],然后在你的第一步[3,4,4,4],[2,4,4,4],[1,4,4,4]。在第二个步骤,你有[1,3,4,4],[1,2,4,4]。第三步[1,2,3,4]。第四步什么都没有做。 所以您的输出是[[4,4,4,4],[3,4,4,4],[2,4,4,4],[1,4,4,4],[1,3,4,4],[1,2,4,4],[1,2,3,4]]。 允许使用任何合理的输入/输出格式。 有标准漏洞。这是代码高尔夫:字节数最小的答案胜出。 用于检查目的的Python实现。

15
扩展数组
给定两个正整数p和q,您的任务是返回通过应用以下算法创建的数组A: 以A = [p,q]和d = 2开头 对于每一对(X,Y)中的连续号码的甲,其总和为整除d,插入(X + Y)/ d之间X和ÿ。 如果找到至少一对匹配的对,则增加d并继续执行步骤#2。否则,停止并返回一个。 例 以下是p = 1和q = 21时的详细过程。 1 21 | Iteration #1: we start with d = 2 and A = [1, 21] \/ | 1 + 21 is divisible by 2 -> we insert 11 22/2=11 | | 1 …

16
还有一个程序,我出去了!
给定一个正整数嵌套级n和字符串s的打印的ASCII字符(到~,输出一个。方案,其中,以相同的语言运行时,输出一个程序,其输出程序输出该串s。 总计 n应该生成程序,所有程序都应以与您的答案相同的语言运行。 注意:您可以输出程序或函数-默认情况下,您可以将任何内容作为提交提交。 您可以s使用转义字符输入,以您的语言编写的程序或函数通常会如何输入字符串。 例 例如,给定n=1和s="recursion",Python 2程序可能输出: print "recursion" 运行此命令将输出: recursion 给定n=2和s =“ PPCG”,Python 2程序可能输出: print "print \"PPCG\" " 运行此输出: print "PPCG" 运行此输出: PPCG 相关(+标题灵感):还有一个LUL,我出门了 也相关(在沙箱中-现在已删除,但仍然可以以足够的信誉查看):源代码递归 测试用例 确保您的代码适用于以下测试用例(每行一个): n s 2 PPCG 4 Robert'); DROP TABLE Students;-- 17 Deep 2 Spaces In Here 3 "Don't forget quotes!" 5 'Backt`cks …
21 code-golf  recursion  code-golf  kolmogorov-complexity  board-game  code-golf  number-theory  polynomials  code-golf  code-golf  array-manipulation  polyglot  alphabet  answer-chaining  code-golf  sequence  math  atomic-code-golf  abstract-algebra  proof-golf  code-golf  internet  code-golf  internet  code-golf  ascii-art  kolmogorov-complexity  code-golf  math  ascii-art  number  integer  code-golf  decision-problem  binary-matrix  code-golf  number  sequence  number-theory  code-golf  math  decision-problem  matrix  abstract-algebra  code-golf  string  keyboard  code-golf  fractal  code-golf  math  sequence  combinatorics  hello-world  vim  code-golf  sequence  code-golf  graphical-output  image-processing  code-golf  decision-problem  matrix  linear-algebra  code-golf  ascii-art  code-golf  math  code-golf  ascii-art  graphical-output  code-golf  string  code-golf  string  substitution  code-golf  string  ascii-art  code-golf  arithmetic  code-golf  number  array-manipulation  decision-problem  code-golf  kolmogorov-complexity  code-generation  fractal  code-golf  ascii-art  kolmogorov-complexity  code-golf  ascii-art  code-golf  string  array-manipulation  code-golf  music  code-golf  array-manipulation  code-golf  internet  stack-exchange-api  math  fastest-algorithm  code-golf  binary  bitwise  code-golf  date  code-golf  string  code-golf  sequence  integer  code-golf  arithmetic  number-theory  code-golf  string  random 

25
最大子阵列
将给定数组的“最大子数组”定义为“具有最大和的(连续)子数组”。请注意,没有“非零”要求。输出该和。 如果可能,请提供代码说明。 样本输入1: 1 2 3 -4 -5 6 7 -8 9 10 -11 -12 -13 14 样本输出1: 24 描述1: 最大的总和是通过切除6 7 -8 9 10和求和而得出的。 样本输入2:-1 -2 -3 样本输出2:0 描述2:很简单:)空的子数组是“最大的”。 需求: 除了标准输入外,什么也不要读,输出应该输出到标准输出。 适用标准漏洞限制。 排名:最短的程序赢得此代码高尔夫球。

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.