Questions tagged «array-manipulation»

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

30
查找数组中最长的单词
您面临的挑战是获取一个字符串数组并输出该数组中最长的字符串。因此对于 ["tiny", "small", "bigger", "biggest"] 输出将是biggest。 如果数组的两个元素的长度相同,则应选择在数组中最先出现的元素。这意味着如果数组看起来像这样: ["one", "two", "no"] 输出为one,但如果数组如下所示: ["two", "one", "no"] 输出是two。 因为这是code-golf,所以以字节为单位的最短代码获胜。

20
循环移动总和
受Stack Overflow 问题的启发。 给定整数的非空数组x和一个正整数n,计算总和的每一个滑动块长度的n沿阵列x,圆在左边与值从右侧填充缺失的值如下: 第一个块包含的第一个条目x,后跟n-1循环移位的条目; 第二个块具有的第一个和第二个条目x,后跟n-2循环移位的条目;等等。 输出数组y的大小与相同x。可能n超过的长度x,然后x循环重复使用的值几次。 例子 示例1(值仅重用一次) x = [2, 4, -3, 0, -4] n = 3 作为输出 y = [-2, 2, 3, 1, -7] 哪里 -2是块的总和[0, -4, 2](前两个值来自循环移位) 2是的总和[-4, 2, 4](第一个值来自循环移位) 3是的总和[2, 4, -3](不再需要循环移位) 1 是...的总和 [4, -3, 0] -7是的总和[-3, 0, -4]。 示例2(值被重用几次) x = [1, 2] …

13
生成总和最小的全等列表
两个列表A和B,如果它们具有相同的长度,则是全等的,而在中A比较相等的元素在中比较相等B。 换句话说,给定任意两个有效索引x和y: 如果A[x] = A[y]是的话B[x] = B[y]。 如果A[x] != A[y]是的话B[x] != B[y]。 例如,清单[1, 2, 1, 4, 5]和[0, 1, 0, 2, 3]是一致的。 任务 鉴于非空目录非负整数A,返回一个新的列表非负整数,B这样是要一致A,同时尽量减少在整数的总和B。 可能有许多可能的有效输出。例如,在列表中[12, 700, 3],的任何排列都[0, 1, 2]将被视为有效输出。 测试用例 Format: input -> one possible valid output [1 2 1 4 5] -> [0 1 0 2 3] (this is the …

30
将清单对折
我们将折叠一个整数列表。这样做的步骤如下:如果列表的长度为偶数,请列出其长度的一半,其中新列表的第n个项是旧列表的第n个项与第n个至第n个项之和。旧列表的最后一项。例如,如果我们有列表 [1 2 3 4 5 6 7 8] 我们会像这样折叠 [8 7 6 5] +[1 2 3 4] __________ [9 9 9 9] 如果列表的长度是奇数,则要折叠它,我们首先删除中间项目,将其折叠为偶数,然后将中间项目附加到结果中。 例如,如果我们有列表 [1 2 3 4 5 6 7] 我们会像这样折叠 [7 6 5] +[1 2 3] __________ [8 8 8] ++ [4] __________ [8 8 8 4] …

27
向阵列施加波
今天的任务是对数字数组施加波动。波形如下所示:[1, 0, -1, 0, 1, 0, -1, 0, 1...]将其应用于给定数组意味着将第一个元素,第二个元素等加在一起。 更确切地说: 您的程序或函数将接收一个整数数组。它必须打印或返回大小相等的数组,并1添加到原始数组的1st,5th,9th等元素,-1添加到原始数组的3rd,7th,11th等元素,其余元素应该保持不变。 确保输入数组至少包含一个元素。 测试用例: Input | Output [0] | [1] [-1] | [0] [-4, 3, 0, 1, 7, 9, 8, -2, 11, -88] | [-3, 3, -1, 1, 8, 9, 7, -2, 12, -88] [0, 0, 0, 0, 0] | [1 …

7
找到binarray!
我们将binarray定义为满足以下属性的数组: 它不是空的 第一个值是 1 最后一个值是 1 所有其他值是0或1 例如,数组[ 1, 1, 0, 1 ]是有效的binarray。 任务 给定一个非负整数的非空数组A和一个正整数N的非空数组,您的工作是找到一个长度为N的二进制数组 B,该数组允许通过将不受限制的B个副本的数量相加,再乘以不受限制的B个数量,来生成A。职位。 例 A = [ 1, 1, 2, 4, 1, 2, 2, 1, 0, 1, 0, 1, 1, 0, 1 ] N = 4 对于此输入,binarray B = [ 1, 1, 0, 1 ]将是一个有效的答案,因为我们可以这样做: [ 1, …

12
交流功率斐波那契数列
定义 交流功率斐波那契数列形成如下。 从空序列开始,并将n设置为1。 用重复计算第n 个非负斐波那契数f n。0是第一个,1是第二个,第三个,2是第四个。所有其他值都是通过将序列中的前两个数字相加得出的,因此3 = 1 + 2是第五个,5 = 2 + 3是第六个,依此类推。 如果n为奇数,则更改f n的符号。 将f n的2 n-1个副本附加到序列中。 递增n并返回到步骤2。 这些是APF序列的前一百个术语。 0 1 1 -1 -1 -1 -1 2 2 2 2 2 2 2 2 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 …

12
数组统一
介绍 考虑两个相同长度的数组,例如A = [0,1,0,2]和B = [-1,1,2,2]。假设我们知道它们的内容在某种意义上是逐项相等的: 0等于-1, 1等于1, 0等价于2和 2等同于2。 等价是可传递的:-1和0等价,并且0和2等价,所以-1和2也等价。的统一的A和B是其中的每一个项目的阵列A(或B)已取代这相当于它的数量最多。在这种情况下,统一为[2,1,2,2]。 任务 编写一个程序或函数,该程序或函数采用两个相等长度的非空整数数组,并输出它们的统一。您也可以就地修改输入之一,而不用返回。最低字节数获胜。 测试用例 [0] [0] -> [0] [1] [2] -> [2] [0,-1] [-1,-1] -> [0,0] [0,1,0] [2,1,0] -> [2,1,2] [1,2,3] [0,0,1] -> [3,3,3] [0,1,0,2] [-1,1,2,2] -> [2,1,2,2] [1,0,1,-4] [-3,-1,-2,2] -> [1,0,1,2] [1,2,3,-2] [1,0,-3,-2] -> [1,2,3,-2] [-3,-2,-1,0,1] [-1,-1,-1,-1,-1] -> [1,1,1,1,1] …

9
打印所有3 x 3坚固的正方形
坚固的正方形(类似于魔术正方形)是整数1到N 2在N by N网格上的排列,以使每2 by 2子网格具有相同的总和。 例如,对于N = 3,一个坚固的正方形是 1 5 3 9 8 7 4 2 6 因为四个2 x 2子网格 1 5 9 8 5 3 8 7 9 8 4 2 8 7 2 6 全部加起来等于23, 23 = 1 + 5 + 9 + 8 = 5 + …
24 code-golf  number  arithmetic  number-theory  grid  code-golf  binary  code-golf  popularity-contest  code-golf  chemistry  code-golf  code-golf  date  code-golf  quine  chess  code-golf  hexadecimal  code-golf  number  arithmetic  sequence  array-manipulation  code-golf  math  date  code-golf  typography  code-golf  string  code-golf  string  code-golf  code-golf  math  arithmetic  array-manipulation  grid  code-golf  puzzle-solver  code-golf  music  audio  code-golf  decision-problem  code-golf  geometry  code-golf  number  bitwise  code-golf  string  metagolf  hexagonal-grid  code-golf  string  code-golf  sorting  popularity-contest  code-golf  game  sequence  base-conversion  binary  code-golf  decision-problem  graph-theory  natural-language  code-golf  math  parsing  optimized-output  code-golf  array-manipulation  code-golf  graphical-output  image-processing  tiling  code-golf  graph-theory  path-finding  chess  code-golf  code-golf  balanced-string  code-golf  number  code-golf  sequence  code-golf  math  arithmetic  statistics  code-golf  chemistry 

30
非唯一元素
编写一个程序,查找有符号整数数组的非唯一元素。结果数组可以是任何顺序。 您的答案可能是一个片段,该片段假定输入要存储在变量中(d例如),并求值以得出正确的结果。 测试用例 每个测试用例都是以下格式的一行 input => output。请注意,输出的其他排列也是有效的。 [] => [] [-1, 0, 1] => [] [1, 1] => [1] [3, 0, 0, 1, 1, 0, 5, 3] => [3, 0, 1] [-34, 0, 1, -34, 4, 8, 4] => [-34, 4] 元素的顺序无关紧要。 这是代码高尔夫球,因此最短的答案(以字节为单位)获胜。

30
从列表中生成带有牛津逗号的单个字符串
有什么巧妙的(简短而惯用的)方法来获取字符串列表,并返回一个从列表中构建的正确标点的字符串,并用引号将每个元素引起来。 这是我在尝试Groovy时想到的,对于我来说,我的字面意思是,但过于说明性的解决方案是 def temp = things.collect({"\'${it}\'"}) switch (things.size()) { case 1: result = temp[0] break case 2: result = temp.join(" and ") break default: result = temp.take(temp.size()-1).join(", ") + ", and " + temp[-1] break } 也就是说,['1']应该yield '1',['1','2']应该yield '1 and 2',[请参阅我在那里做的吗?],并且['1','2','3']应该yield '1, 2, and 3'。 对于Groovy,我有一些很好的答案,但我想看看其他语言可以做什么。 在各种语言中,有什么紧凑的巧妙方法可以利用这些语言的功能和习惯用法?

21
这个清单可以平衡吗?
要检查一列非负整数是否平衡,可以想象一下将各个权重放在板上,然后尝试将板平衡在枢轴上,以使枢轴左右的汇总相对权重相同。相对重量是通过将其重量乘以其到枢轴的距离得出的(请参见杠杆定律)。 (来源:维基百科) 该图像对应于一个列表[100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5]。该列表是平衡的,因为5到枢轴的距离为20,而到枢轴100的距离为1和5*20 = 100 = 100*1。 例子 3 1 5 7 ######### ^ 在这种情况下,枢轴位于的正下方5,3具有距离2和1且7具有距离1。因此,枢轴的左侧和右侧的两边总计为7(3*2 + 1*1在左侧和7*1右侧),因此列表[3, 1, 5, 7]是平衡的。 但是请注意,枢轴不必放在列表元素之一的下面,而也可以放在两个列表元素之间: 6 3 1 ####### ^ 在这种情况下,距离变为0.5, 1.5, 2.5, …

20
不相邻项目的最大合计子序列
介绍: 由这两个问题SO(没有来自同一类怀疑)的启发:打印不相邻的元件的java在最大总和的子阵列的元件和阵列的非相邻元件的最大总和,将被打印。 挑战: 给定一个整数列表,输出由具有最高和的不相邻元素组成的子序列。这里有一些例子: [1,2,3,-1,-3,2,5]将导致基于0的索引处[1,3,5](总和为9)[0,2,6]。 [4,5,4,3]会在基于0的索引处产生[4,4](总和8),[0,2]或者在基于0的索引处产生[5,3](总和8)[1,3]。 [5,5,10,100,10,5]会导致基于0的索引或产生[5,100,5](总和110)。[0,3,5][1,3,5] 上面这些示例中最重要的是,包含元素的索引彼此之间至少相距2。如果我们[5,5,10,100,10,5]更深入地看这个例子:我们有以下包含不相邻项的潜在子序列;索引低于它;其总和如下: [[5],[10],[100],[10],[5],[5],[100,5],[10,5],[10,10],[5,5],[5,10],[5,100],[5,5],[5,10],[5,100],[5,10],[5,100,5],[5,100,5],[5,10,5],[5,10,10]] // non-adjacent subsequences [[5],[ 4],[ 3],[ 2],[1],[0],[ 3,5],[ 2,5],[ 2, 4],[1,5],[1, 4],[1, 3],[0,5],[0, 4],[0, 3],[0, 2],[1, 3,5],[0, 3,5],[0, 2,5],[0, 2, 4]] // at these 0-based indices [ 5, 10, 100, 10, 5, 5, 105, 15, 20, 10, 15, 105, 10, 15, …

10
最短的唯一标识子字符串
给定一个字符串列表,请用其非空子字符串之一替换每个字符串,该子字符串不是列表中任何其他字符串的子字符串,并且应尽可能短。 例 给定list ["hello","hallo","hola"],"hello"应替换为,"e"因为该子字符串未包含在其中"hallo","hola"并且它尽可能短。"hallo"可通过任一取代"ha"或"al"并"hola"通过任何"ho","ol"或"la"。 规则 您可以假定字符串将为非空,并且仅包含大小写相同的字母字符。 您可以假定列表中的每个字符串都存在这样的子字符串,即列表中的任何字符串都不是其他任何字符串的子字符串。 输入和输出可以采用任何合理的格式。 这是code-golf,因此请尝试使用您选择的语言使用尽可能少的字节。 测试用例 在大多数情况下,仅给出一种可能的输出。 ["ppcg"] -> ["p"] (or ["c"] or ["g"]) ["hello","hallo","hola"] -> ["e","ha","ho"] ["abc","bca","bac"] -> ["ab","ca","ba"] ["abc","abd","dbc"] -> ["abc","bd","db"] ["lorem","ipsum","dolor","sit","amet"] -> ["re","p","d","si","a"] ["abc","acb","bac","bca","cab","cba"] -> ["abc","acb","bac","bca","cab","cba"] 相关:最短识别子字符串 -类似的想法,但涉及更多规则和繁琐的格式。
23 code-golf  string  code-golf  string  code-golf  array-manipulation  code-golf  quine  code-golf  array-manipulation  integer  matrix  classification  code-golf  quine  code-golf  string  matrix  conversion  code-golf  string  number  code-golf  string  code-golf  number  sequence  integer  code-golf  decision-problem  matrix  code-golf  string  code-golf  math  code-golf  math  array-manipulation  combinatorics  code-golf  random  code-golf  code-golf  alphabet  code-golf  python  c  code-golf  base-conversion  code-golf  string  counting  code-challenge  code-generation  fastest-code  code-golf  kolmogorov-complexity  matrix  code-golf  string  code-golf  array-manipulation  decision-problem  random  sudoku  code-golf  chess  code-golf  card-games  encode  code-golf  decision-problem  code-golf  code-golf  math  array-manipulation  matrix 

15
多维逆转
给定非负整数的N维正交(无参)数组,并指示要反转的维数,则返回该数组,但沿这些维数反转。该指示可以作为长度为N的布尔列表或从0或1索引的前N个维度的子集的列表给出。 请说明您的输入格式。代码说明深表感谢。 演练示例 我们得到了2层3行4列3D阵列 [[[ 1, 2, 3, 4], [ 5, 6, 7, 8], [ 9,10,11,12]], [[13,14,15,16], [17,18,19,20], [21,22,23,24]]] 和其中之一 [true,false,true](布尔列表) [0,2](0索引列表) [1,3](1索引列表) 我们需要颠倒第一个和最后一个维度的顺序,即颠倒层和行(列)的元素,而不是每一层的行。首先(执行此操作的实际顺序无关紧要),我们颠倒了图层的顺序: [[[13,14,15,16], [17,18,19,20], [21,22,23,24]], [[ 1, 2, 3, 4], [ 5, 6, 7, 8], [ 9,10,11,12]]] 然后我们反转每一行元素的顺序: [[[16,15,14,13], [20,19,18,17], [24,23,22,21]], [[ 4, 3, 2, 1], [ 8, …

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.