Questions tagged «array-manipulation»

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

30
可靠的分选
给定一个包含至少3个不同条目的正整数列表,请输出该列表的排列,该排列未按升序或降序排序。 例子 1,2,3 -> 2,1,3 or 3,1,2 or 1,3,2 or 2,3,1 1,2,3,3 -> 2,1,3,3 or 3,1,2,3 or 1,3,2,3 etc.. 感谢@Arnauld和@NoOneIsHere的标题!

25
数字增加而字母减少
受此堆栈溢出问题的启发:对列表进行排序:数字以升序排列,字母以降序排列。您的任务是解决以下问题,并且由于这是code-golf,因此应尽可能减少字节。 你应该采取的对象为包含字母输入的列表(任何合理形式:string,char,等)和数字。然后,您应该将数字按升序排序,并将字母按降序排序。但是,应将字母保持在字母位置,将数字保持在数字位置。例如,如果列表为: [L, D, L, L, D, L] 输出列表应采用以下形式: [L, D, L, L, D, L] 遍历 输入: ['a', 2, 'b', 1, 'c', 3] 将数字按升序排序: [1, 2, 3] 将字母按降序排列: ['c', 'b', 'a'] 重新加入他们,但顺序保持不变: ['c', 1', 'b', 2, 'a', 3] 规则 该列表将仅包含字母和数字。 该列表可能为空。 该列表只能包含字母或数字。 如果您的语言不支持混合类型数组,则可以使用数字字符而不是数字。请注意,如果您的语言支持,则必须使用混合类型。 字母只会是[a-z]或[A-Z],您可以选择其中一个。 字母被排序为a最低,z最高,即a = 1, z = 26。 …

12
用总和填充矩阵
挑战: 给定一个方形输入矩阵A,在矩阵的所有四个边上分别填充一行和一列。 顶行和底行中每个元素的值应为每个对应列中元素的总和。 左右列中每个元素的值应为每个对应行中元素的总和。 左上角和右下角的元素值应为对角线上的元素之和 右上角和左下角的元素值应为反对角线中元素的总和。 例: A = 1 5 3 3 2 4 2 5 5 Output: 8 6 12 12 7 9 1 5 3 9 9 3 2 4 9 12 2 5 5 12 7 6 12 12 8 说明: 左上和右下元素是对角线1 + 2 + 5 …

16
每日随机高尔夫#8:随机播放无数人
关于系列 首先,您可以像对待其他任何代码高尔夫挑战赛一样对待它,并回答它而不必担心系列赛。但是,在所有挑战中都有排行榜。您可以在第一篇文章中找到排行榜以及有关该系列的更多信息。 漏洞8:随机播放一个无限列表 您应该编写一个函数或程序,该函数或程序将一个无限列表作为输入并返回该列表的改组版本。 关于无限I / O 您可以通过多种方法来输入和产生此挑战的输出: 您可以采用正整数列表或其字符串表示形式,也可以采用字符串或可打印ASCII字符列表(0x20至0x7E,包括0x20至0x7E)。输出格式必须与输入格式匹配。从现在开始,无论您选择哪个选项,我都将数据称为“列表”。 您可以从无限标准输入流中读取列表,并将输出连续写入无限标准输出流中。解决方案不应依赖任何特定值或值序列来确保输出流被定期写入和刷新(例如5,输入列表中只有a时,您不能仅写入输出)。当然,如果您读取列表的字符串表示形式,则可以等到遇到列表分隔符后再试。 在支持它们的语言中,您可以编写一个函数,该函数接受并返回一个惰性无限列表或字​​符串。 在支持它们的语言中,您可以实现一个无限生成器,该生成器将另一个生成器作为输入。 另外,您可以编写一个不带参数的函数,并在每次调用时返回一个输出值。在这种情况下,可以假定已定义一个不带任何参数的函数,并且每次调用时都返回下一个输入值。您可以自由选择该函数的名称。 您可能会假设您的程序可以永远运行并且可以使用无限内存。(可以通过有限的内存来解决此问题,但这意味着您可以泄漏内存。) 关于随机性 对于在无穷大输入的位置i上读取的任何值v,它必须有一个正概率使其最终在无穷大输出的位置i-9到i + 9中(除非该位置为负) )。对于不同的输出位置甚至不同的输入位置,这些概率不必相同。如果您的解决方案还可以将值改组到更远的其他位置,那就很好。 因此,您的解决方案不必将第一个值拖曳到列表后面很远的地方,也不需要将最后一个值拖曳到第一个位置,尽管这样做可以,只要所有位置都离列表9步即可。输入是可能的。 例如,如果您将以下字符串用作输入,则___表示X必须能够在输出中结束的所有位置: ___________________ abcdefghijklmnopqrstuvwxyzXabcdefghijklmnopqrstuvwxyz... 如果您的语言缺少内置的随机数生成器,或者您不想使用它,则可以使用其他种子值作为输入,并使用种子实现自己适合的RNG。此页面可能对此有所帮助。 无论您的解决方案使用哪种实际分布,它都必须几乎肯定在有限(但任意)的时间后产生下一个值。 请简要说明您的实现如何满足这些要求。 计分 这是代码高尔夫球,因此以字节为单位的最短有效答案为准。 排行榜 该系列的第一篇文章将产生一个排行榜。 为确保您的答案显示出来,请使用以下Markdown模板以标题开头每个答案: # Language Name, N bytes N您提交的文件大小在哪里。如果您提高了分数,则可以通过打败旧分数来保持标题。例如: # Ruby, <s>104</s> <s>101</s> 96 bytes (目前未显示该语言,但是该代码段确实需要并对其进行解析,并且将来我可能会添加一个语言排行榜。)

30
其他元素之和的奇偶校验
任务 给定正整数数组,请用其他元素之和的奇偶校验替换每个元素。该数组保证至少包含 2个元素。 定义 奇偶校验:数字是奇数还是偶数。 例 对于数组[1,2,3,1]: 替换1为的奇偶校验2+3+1,即even。 替换2为1+3+1,即odd。 替换3为1+2+1,即even。 替换1为1+2+3,即even。 输出: [even, odd, even, even] 输入项 正整数数组。 您可以将其作为一个适当的数组,或者作为一个由换行分隔的正整数字符串。 您可以假定数组和其中的值在您语言的处理能力之内。 输出量 两个一致值的数组,一个代表odd一个,一个代表even。 您可以将其输出为两个值之间以换行符分隔的字符串。 测试用例 输入: [1, 2, 3, 1] [1, 2, 3, 2, 1] [2, 2] [100, 1001] 输出: [even, odd, even, even] [even, odd, even, odd, even] [even, even] …

9
希尔伯特大酒店
介绍 你们中有些人可能听说过希尔伯特大酒店。那里的经理丢失了他的住所清单,但他仍然保留了他们的入住顺序。每个客人都不能住在房间号小于其房间值的房间中,并且如果客人被添加到较低的房间中房间,较高房间的所有客人之间都没有空的空间,新来的客人被转移到一个房间。您能帮他找到每位客人的住处吗? 要求 编写一个程序,该程序接收自然数的有序列表作为输入,并将其放在其索引处。如果该索引中已经有一个值,则将其上移到列表中的下一个条目。重复此过程,直到找到第一个空白(0或未定义)空间。当前最高索引与任何新输入之间的所有未定义空格都将加0。由于这是希尔伯特大酒店,因此不存在比当前最高入住指数更高的房间。 输入输出 输入将是自然数的有序列表(允许通过任何可接受的输入形式读取)输入中的 每个数均被视为一位到达酒店且按到达顺序排列的客人 输出将是客人的最终安排(人数) 例子 输入: 1 3 1 输出: 1 1 3 逐步: 1 在索引1处创建房间并将1放置在其中 1 0 3 在索引3处创建房间并将3放置在房间3中 1 1 3 向上移动房间1的内容一室一厅1 输入: 1 4 3 1 2 1 输出:1 1 2 1 3 4 逐步: 1 在索引1处创建房间并将1放置在其中 1 0 0 4 在索引4处创建房间并将4放置在房间4 1 …

16
随机排列一个破烂的数组
参差不齐的数组是其中每个元素都是未知数量的正整数的数组。 例如,以下是参差不齐的数组: [[1,2,3],[4],[9,10]] Shape: 3,1,2 [[1],[2],[3]] Shape: 1,1,1 [[1,2,3,4,5,6,8]] Shape: 7 以下不是破烂的数组: [1] Each element will be an array [] The array will contain at least 1 element [[1,2,3],[]] Each subarray will contain at least 1 integer 您需要输入一个衣衫array的数组,然后返回一个带有乱码整数的衣衫array的数组 输出数组必须与输入数组具有相同的形状。我们将数组的形状定义为每个子数组的长度。 每个整数必须有同样可能出现在每个可能的位置。 您可以假设语言的内置随机数是随机的。 例如,如果我通过了: [[4],[1,2,3],[4]],那么[[1],[4,4,2],[3]]将是一个有效的输出,但[[4,1,3],[3],[4]]还是[[4],[4],[1,2,3]]不肯。

15
跟着我重复!
给定一个字符串作为参数,输出最长的不重叠重复子字符串的长度;如果没有这样的字符串,则输出零。 您可以假设输入字符串不为空。 例子 abcdefabc:子字符串abc在位置1和7处重复,因此程序应输出3 abcabcabcabcab:abcabc或bcabcaor cabcab重复,因此程序应输出6。(子字符串abcabcabcab也被重复,但是出现的部分重叠,因此我们不接受它)。 aaaaaaa:aaa例如在位置1和4处重复,因此程序应输出3 abcda:a重复,因此程序应输出1 xyz:没有重复的字符串→ 0 ababcabcabcabcab:应返回6 这是代码高尔夫球,因此最少的字节获胜。
23 code-golf  string  code-golf  code-golf  kolmogorov-complexity  primes  code-golf  kolmogorov-complexity  hexadecimal  code-golf  code-golf  string  code-golf  string  random  code-golf  array-manipulation  code-golf  ascii-art  kolmogorov-complexity  random  code-golf  array-manipulation  code-golf  stateful  code-golf  hello-world  code-golf  string  code-golf  interpreter  lisp  code-golf  restricted-source  quine  palindrome  code-golf  ascii-art  random  generation  challenge-writing  ascii-art  random  polyglot  maze  answer-chaining  string  cops-and-robbers  whitespace  code-golf  string  cops-and-robbers  whitespace  code-golf  number  sequence  code-golf  date  code-golf  ascii-art  decision-problem  code-golf  combinatorics  chemistry  code-golf  kolmogorov-complexity  source-layout  radiation-hardening  code-golf  ascii-art  path-finding  maze  code-golf  string  ascii-art  game  animation  code-golf  string  ascii-art  code-golf  ascii-art  kolmogorov-complexity  code-golf  restricted-source  new-years 

25
阵列的反向增量
阵列的反向增量 数组的反增量的延续 您的任务是获取一个带符号的32位整数数组,并以相反的增量重新编译它。 例 列表, 18 19 17 20 16 具有增量: 1 -2 3 -4 反转后得出: -4 3 -2 1 然后在重新编译时,使用yields: 18 14 17 15 16 这应该是您的返回值。 重新编译包括采用C,它是数组的第一个值。在这种情况下,请18按顺序应用增量。所以18 + -4给定14,14 + 3给定17,依此类推。 输入输出 您将得到一个列表/数组/表/元组/堆栈/等。通过任何标准输入法输入的带符号整数的数量。 按照上述增量反转方法,您必须以任何可接受的形式再次输出修改后的数据。 您将收到N个输入,0 < N < 10其中每个数字都在该范围内-1000 < X < 1000 测试用例 1 2 3 4 5 …

9
排序嵌套列表
您必须编写对嵌套列表进行排序的程序或函数。以下是对嵌套列表进行排序的规则: 让我们以这个清单为例: ((5, 2), 2, 7, (2, 1, (3, 4)), 9) 此列表中的每个元素都有一个“优先级”。元素计为数字或子列表。首先,在相同深度获得每个元素的优先级。如果元素只是数字,则其优先级与数字本身相同。如果元素是子列表,则其优先级是其中所有数字的总和,不包括任何子子列表。 因此,深度1的所有元素的优先级为: ( 7 ) 2 7 ( 3 ) 9 ((5, 2), 2, 7, (2, 1, (3, 4)), 9) 按优先级对每个元素进行排序。如果有平局,则必须保持与原始列表相同的顺序。 2 ( 3 ) ( 7 ) 7 9 (2, (2, 1, (3, 4)), (5, 2), 7, 9) …

13
离开巢穴
给定一个非整数的整数列表,请输出一个列表,其中包含每个嵌套级别中的整数(从最小嵌套级别开始),并按从左到右的顺序以原始顺序显示值。如果两个或更多个列表在输入列表中处于同一嵌套级别,则应将它们合并到输出中的单个列表中。输出不应包含任何空列表-仅包含列表的嵌套级别应完全跳过。 您可以假定整数都在(包括)范围内[-100, 100]。列表没有最大长度或嵌套深度。输入中将没有空列表-每个嵌套级别将至少包含一个整数或列表。 输入和输出必须在您语言的本机列表/数组/可枚举/可迭代/等中。格式,或者如果您的语言缺少序列类型,则采用任何合理,明确的格式。 例子 [1, 2, [3, [4, 5], 6, [7, [8], 9]]] => [[1, 2], [3, 6], [4, 5, 7, 9], [8]] [3, 1, [12, [14, [18], 2], 1], [[4]], 5] => [[3, 1, 5], [12, 1], [14, 2, 4], [18]] [2, 1, [[5]], 6] => [[2, 1, …

9
查找2D打印对象的容量
在虚构的2D世界中,一组对象的2D打印指令可以用整数列表表示,如下所示: 1 4 2 1 1 2 5 3 4 每个数字代表对象在该特定点的高度。上面的列表在打印时转换为以下对象: # # # # # ### ## #### ######### 然后,我们向其中填充尽可能多的水,结果是: # #~~~~#~# #~~~~### ##~~#### ######### 我们将物体的容量定义为物体完全充满时可以容纳的水的单位。在这种情况下,为11。 严格说来,~当且仅当水单元(#)被同一行中的两个实心块()包围时,它才能在该位置存在。 挑战 以正整数列表作为输入(任何格式),并输出将列表用作指令时打印的对象的容量。 您可以假定列表至少包含一个元素,并且所有元素都在1到255之间。 测试用例 +-----------------+--------+ | Input | Output | +-----------------+--------+ | 1 | 0 | | 1 3 255 1 | …

15
几何挑战
每个人都喜欢几何。那么,为什么我们不尝试编写高尔夫球代码呢?这项挑战涉及输入字母和数字并根据其形状。 输入 输入将采用的形式(shapeIdentifier)(size)(inverter)。 但是shapeIdentifier,大小和逆变器是什么? 形状标识符是您将使用*s 制作的形状类型的标识符。以下是形状标识符: s -正方形 t - 三角形 大小将介于之间1-20,它是图形的大小。 逆变器确定形状是否上下颠倒,用a +或a 表示-。请注意: s3-==(等于),s3+因为正方形是对称的。但是,t5-!=(不相等)t5+。 在输出中可以使用尾随空白,但不能使用前置空白。 输出实例 Input: s3+ Output: *** *** *** Input: t5+ Output: * *** ***** Input: t3- Output: *** * 特别说明 三角形输入将始终为奇数,因此三角形*的顶部始终以1结尾。 三角形的大小(如果是)是底部的大小,如果是 +,则是顶部的大小-。
23 code-golf  string  ascii-art  geometry  code-golf  ascii-art  subsequence  fewest-operations  test-battery  code-golf  array-manipulation  bitwise  code-golf  interactive  code-golf  music  code-golf  string  kolmogorov-complexity  code-golf  string  decision-problem  simulation  code-golf  string  classification  code-golf  sequence  base-conversion  palindrome  code-golf  kolmogorov-complexity  code-golf  date  astronomy  code-golf  sequence  base-conversion  code-golf  geometry  combinatorics  code-golf  string  code-golf  math  array-manipulation  code-challenge  math  code-golf  card-games  code-challenge  array-manipulation  sorting  code-golf  code-golf  math  abstract-algebra  polynomials  code-golf  palindrome  factoring 

28
迭代部分和
整数列表[a 1,a 2,a 3,...,a n ]的部分和为 s 1 = a 1 s 2 = a 1 + a 2 s 3 = a 1 + a 2 + a 3 ... s n = a 1 + a 2 + ... + a n 然后,我们可以获取部分和[s 1,s 2,s 3,...,s n ]的列表,然后再次计算其部分和以生成新列表,依此类推。 …

21
不同的前进方向
给定整数列表,将以指定的顺序/深度产生正向差异。 对于整数列表: (10, 18, -12, 4, 8, -3, -5, 67, 9, 14) 各种订单/深度的远期差异为: 0 10, 18, -12, 4, 8, -3, -5, 67, 9, 14 1 8, -30, 16, 4, -11, -2, 72, -58, 5 2 -38, 46, -12, -15, 9, 74, -130, 63 3 84, -58, -3, 24, 65, -204, …

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.