Questions tagged «array-manipulation»

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

30
成为第一个(仅留下第一个Truthy)
介绍 每年,Dyalog有限公司都会举办一次学生比赛。面临的挑战是编写好的 APL代码。这是今年第八个问题的与语言无关的高尔夫版本。 我得到比赛原作者的明确许可,可以在此处发布此挑战。跟随提供的链接并与作者联系,以进行验证。 问题 给定布尔值列表,“关闭”第一个Truthy之后的所有Truthies。 没有真相吗?没问题!只需返回未修改的列表即可。 例子 [falsy,truthy,falsy,truthy,falsy,falsy,truthy] → [falsy,truthy,falsy,falsy,falsy,falsy,falsy] [] → [] [falsy,falsy,falsy,falsy] → [falsy,falsy,falsy,falsy] *您的所有真相必须相同,而您的所有虚假也必须相同。这包括输出。

30
有已知的
美国前国防部长唐纳德·拉姆斯菲尔德(Donald Rumsfeld)著名地推广了“已知的已知物”。在这里,我们将把他的言论提炼成四行节。 具体来说,输出以下文本: known knowns known unknowns unknown knowns unknown unknowns 大小写无关紧要(例如,Known unKnowns可以),可以使用单行尾的换行符,但不允许其他格式更改。这意味着单词之间有一个空格,行之间有LF(59字节)或CR/LF(62字节)。 规则 完整的程序或功能都是可以接受的。如果是函数,则可以返回输出而不是打印输出。 禁止出现标准漏洞。 这是代码高尔夫球,因此所有常用的高尔夫规则都适用,并且最短的代码(以字节为单位)获胜。

18
您可以将这根弦切成多少块?
考虑一条字符串(如“绳子”,而不是“一串字符”),该字符串在实线上来回折叠。我们可以通过(按顺序)通过的点列表来描述字符串的形状。为了简单起见,我们假定所有这些点都是整数。 举个例子[-1, 3, 1, -2, 5, 2, 3, 4](注意,并非每个条目都包含一个折叠): 沿垂直方向延伸的字符串仅用于可视化目的。想象一下,所有的弦线都扁平化到了实线上。 现在的问题是:一次切割就可以切成最大的弦数(在上图中必须是垂直的)。在这种情况下,答案是6,且在2和之间的任意位置都有一个割线3: 为了避免歧义,切口具有在一个非整数的位置被执行。 挑战 给定一串可折叠的整数位置列表,您将确定一次可在非整数位置进行一次切割即可切割的最大片段数。 您可以编写完整的程序或函数。您可以通过STDIN,命令行参数,提示符或函数参数进行输入。您可以将输出写入STDOUT,在对话框中显示或从函数返回。 您可以假定该列表采用任何方便的列表或字符串格式。 该列表将包含至少2个且不超过100个条目。入口将整数,每个范围-2 31 ≤p 我 <2 31。您可以假定没有两个连续的条目相同。 您的代码必须在合理的台式PC上在不到10秒的时间内处理任何此类输入(包括下面的测试用例)。 测试用例 所有测试用例只需输入,然后输出即可。 [0, 1] 2 [2147483647, -2147483648] 2 [0, 1, -1] 3 [1, 0, -1] 2 [-1, 3, 1, -2, 5, 2, 3, 4] 6 [-1122432493, -1297520062, …

30
实现堆栈
我不敢相信我们还没有这个。.它是编程中最重要的数据结构之一,但仍然足够简单,可以在代码高尔夫球中实现: 挑战 您的任务是实现允许压入和弹出数字的堆栈,以测试实现并保持I / O简单,我们将使用以下设置: 输入将是非负整数列表 每个正整数表示一个,每个表示一个 -丢弃顶部元素。push( n ) 0 pop()ñnn推( n)push(n)\texttt{push(}n\texttt{)}000pop()pop()\texttt{pop()} 输出将是结果堆栈 例 例如,如果我们得到:[ 12 ,3 ,0 ,101 ,11 ,1 ,0 ,0 ,14 ,0 ,28 ][12,3,0,101,11,1,0,0,14,0,28][12,3,0,101,11,1,0,0,14,0,28] 1230101111个0014028[ 12 ][ 3 ,12 ][ 12 ][ 101 ,12 ][11,101,12][1,11,101,12][11,101,12][101,12][14,101,12][101,12][28,101,12]12[12]3[3,12]0[12]101[101,12]11[11,101,12]1[1,11,101,12]0[11,101,12]0[101,12]14[14,101,12]0[101,12]28[28,101,12] \begin{aligned} & 12 & [12] \\ & 3 & [3,12] \\ …

16
实施“懒惰排序”
我应该对数字列表进行排序,但是我很懒。很难弄清楚如何交换所有数字,直到所有数字都按升序排列,所以我想出了自己的算法来保证新列表的排序。运作方式如下: 对于大小为N的列表,我们需要N-1次迭代。在每次迭代中 检查第N个数字是否小于第N + 1个数字。如果是,则这两个数字已经排序,因此我们可以跳过此迭代。 如果不是,那么您需要连续递减前N个数字,直到这两个数字顺序正确为止。 让我们举一个具体的例子。假设输入是 10 5 7 6 1 在第一个迭代中,我们将比较10和5。10大于5,因此我们将其递减直到更小: 4 5 7 6 1 现在我们比较5和7。5小于7,因此在此迭代中无需执行任何操作。因此,我们转到下一个并比较7和6。7大于6,因此我们递减前三个数字,直到小于6,我们得到: 2 3 5 6 1 现在我们比较6和1。同样,6大于1,因此我们将前四个数字减1,直到小于1,我们得到: -4 -3 -1 0 1 我们完成了!现在,我们的列表已按完美排序。而且,为了使事情变得更好,我们只需要遍历列表N-1次,因此该算法以O(N-1)时间对列表进行排序,我敢肯定,这是最快的算法。² 今天的挑战是实现这种惰性排序。您的程序或函数将获得任意喜欢的标准格式的整数数组,并且您必须执行此惰性排序并返回新的“已排序”列表。数组永远不会为空或包含非整数。 这里有些例子: Input: 10 5 7 6 1 Output: -4 -3 -1 0 1 Input: 3 2 1 Output: …

25
对数组进行重排序
挑战 给定一个非空的整数数组,例如: [5, 2, 7, 6, 4, 1, 3] 首先将其切断成没有任何项目大于前一个的数组(即非升序数组): [5, 2] [7, 6, 4, 1] [3] 接下来,反转每个数组: [2, 5] [1, 4, 6, 7] [3] 最后,将它们全部串联在一起: [2, 5, 1, 4, 6, 7, 3] 这应该是程序输出/函数返回的结果。重复此过程足够的时间,数组将被完全排序。 规则 输入和输出可以通过任何标准方法给出,并且可以采用任何合理的数组格式。 输入数组永远不会为空,但可能包含负数和/或重复项。 每个整数的绝对值将始终小于2 31。 测试用例 希望这些能够涵盖所有边缘情况: [1] -> [1] [1, 1] -> [1, 1] [1, …

30
递增数组
给定一个非空的正整数数组,对其进行“递增”一次,如下所示: 如果所有数组元素均相等,1则将a附加到数组末尾。例如: [1] -> [1, 1] [2] -> [2, 1] [1, 1] -> [1, 1, 1] [3, 3, 3, 3, 3] -> [3, 3, 3, 3, 3, 1] 否则,增加数组中的第一个元素,即数组的最小值。例如: [1, 2] -> [2, 2] [2, 1] -> [2, 2] [3, 1, 1] -> [3, 2, 1] -> [3, 2, 2] …

30
数学教学武器
上一次,当我试图提出一些并非重复的简单尝试时,结果却变得太难了。所以希望这次,确实是新手也可以尝试的尝试。 输入: 具有整数/小数的数组/列表。(或一个表示整数/小数的数组的字符串。) 输出: 遍历数字并按以下顺序应用以下五个数学操作数: 加法(+); 减法(−); 乘法(*或×或·); 实数/计算器部(/或÷); 取幂(^或**)。 (注意:括号中的符号只是为了说明而添加。如果您的编程语言对数学运算使用的符号与示例所使用的符号完全不同,那么这当然是完全可以接受的。) 继续进行操作,直到到达列表的末尾,然后给出总和的结果。 挑战规则: 用0(n ^ 0)求幂应该得到1(这也适用于0 ^ 0 = 1)。 没有用0(n / 0)除的测试用例,因此您不必担心这种边缘情况。 如果数组仅包含一个数字,则将其作为结果返回。 通用规则: 这是代码高尔夫球,因此最短答案以字节为单位。 不要让代码高尔夫球语言阻止您发布使用非代码高尔夫球语言的答案。尝试针对“任何”编程语言提出尽可能简短的答案。 标准规则适用于您的答案,因此允许您使用STDIN / STDOUT,具有正确参数的函数/方法,完整程序。您的来电。 默认漏洞是禁止的。 如果可能的话,请添加一个带有测试代码的链接。 测试用例: [1,2,3,4,5] -> 0 -> 1 + 2 = 3 -> 3 - 3 = 0 -> 0 …

23
用笔触覆盖天际线
给定一个非负整数天际线高度列表,请回答需要多少不间断的1个单位高的水平画笔笔划来覆盖它。 [1,3,2,1,2,1,5,3,3,4,2],可视为: 5 5 4 3 5334 32 2 53342 13212153342 需要九个笔触: 1 2 3 4 5555 66 7 88888 99999999999 例子 [1,3,2,1,2,1,5,3,3,4,2] → 9 [5,8] → 8 [1,1,1,1] → 1 [] → 0 [0,0] → 0 [2] → 2 [2,0,2] → 4 [10,9,8,9] → 11

19
我的馅饼被平分了吗?
编写一个包含正整数的非空列表的程序或函数。您可能会假设它是以合理方便的格式输入的,例如"1 2 3 4"或[1, 2, 3, 4]。 输入列表中的数字表示完整饼图的切片,其中每个切片的大小与其对应的数字成比例,并且所有切片均按给定的顺序排列在图表周围。 例如,饼图为1 2 3 4: 您的代码必须回答的问题是:饼图是否一分为二?也就是说,从圆的一侧到另一侧是否存在一条完美的直线,将其对称地一分为二? 你需要输出truthy值,如果有至少一个平分线和输出falsy如果有没有价值。 在该1 2 3 4示例中,之间有一个等分线4 1,2 3因此输出将是真实的。 但是对于输入而言1 2 3 4 5,没有平分线,因此输出将是虚假的: 其他例子 以其他方式排列数字可能会消除等分线。 例如2 1 3 4→虚假: 如果输入列表中只有一个数字,则饼图不会一分为二。 例如10→虚假: 可能有多个平分线。只要大于零,输出就是真实的。 例如6 6 12 12 12 11 1 12→真实:(这里有3个等分线) 即使平分在视觉上不明显,也可能存在。 例如1000000 1000001→虚假: 例如1000000 1000001 1→真实: (感谢nces.ed.gov生成饼图。) 测试用例 …
43 code-golf  math  arithmetic  combinatorics  decision-problem  code-golf  sequence  number-theory  binary  code-golf  number-theory  set-theory  code-golf  hashing  code-golf  game  card-games  code-golf  ascii-art  code-golf  arithmetic  array-manipulation  jelly  code-golf  string  array-manipulation  code-golf  sorting  code-challenge  code-golf  number  date  binary  code-golf  arithmetic  code-golf  math  number  linear-algebra  polynomials  code-golf  ascii-art  code-golf  grid  decision-problem  code-golf  string  combinatorics  code-golf  string  kolmogorov-complexity  arithmetic  date  code-golf  number  data-structures  code-golf  ascii-art  kolmogorov-complexity  code-golf  string  ascii-art  code-golf  ascii-art  kolmogorov-complexity  code-golf  array-manipulation 

10
字形矩阵
作为其压缩算法的一部分,JPEG标准沿着交替方向的对角线将矩阵展开为向量: 您的任务是获取矩阵(不一定是正方形)并以展开形式返回。举个例子: [1 2 3 4 5 6 7 8 9 1 2 3] 应该屈服 [1, 2, 5, 9, 6, 3, 4, 7, 1, 2, 8, 3] 规则 您可以假设矩阵元素是小于的正整数10。 您可以编写程序或函数,通过STDIN(或最接近的替代方案),命令行参数或函数自变量获取输入,并通过STDOUT(或最接近的替代方案),函数返回值或函数(out)参数输出结果。 输入矩阵可以任何方便,明确,嵌套的列表或字符串格式给出,也可以与两个矩阵维一起作为平面列表给出。(或者,当然,如果您的语言包含矩阵类型,则作为矩阵类型。) 输出向量可以是任何方便,明确,平坦的列表或字符串格式。 适用标准代码高尔夫球规则。 测试用例 [[1]] => [1] [[1 2] [3 1]] => [1 2 3 1] [[1 2 3 1]] …

30
构造身份矩阵
挑战非常简单。给定整数输入n,输出n x n单位矩阵。单位矩阵是1从左上角到右下角的s 矩阵。您将编写一个程序或函数来返回或输出您构造的身份矩阵。您的输出可能是2D数组,或者是由空格/制表符和换行符分隔的数字。 输入和输出示例 1: [[1]] 2: [[1, 0], [0, 1]] 3: [[1, 0, 0], [0, 1, 0], [0, 0, 1]] 4: [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]] 5: [[1, 0, 0, 0, 0], [0, 1, 0, 0, 0], …

30
StringgnirtSStringgnirtSStringgnirtS
这对您来说是一个相对简单的挑战。 给定长度为N的字符串,向前输出该字符串,然后向后输出,然后向前,然后向后输出……等等。N次。例如,如果您输入的是 Hello! 您应该输出: Hello!!olleHHello!!olleHHello!!olleH 您也可以选择输出一个尾随换行符。 您的提交可以是完整程序,也可以是函数,并且您可以采用任何合理的格式进行输入和输出。例如,您可以从STDIN / STDOUT中获取IO,从函数中获取参数,并从文件中获取返回值,等等。您可以放心地假设输入字符串将不会为空,并且仅包含可打印的ASCII。您必须在一行上输出新字符串。因此,例如,如果最后一个示例的输出是 Hello! !olleH Hello! !olleH Hello! !olleH 这不是有效的解决方案! 这里是更多测试用例: Input: a Output: a Input: abcd Output: abcddcbaabcddcba Input: OK! Output: OK!!KOOK! Input: 4815162342 Output: 4815162342243261518448151623422432615184481516234224326151844815162342243261518448151623422432615184 Input: PPCG Output: PPCGGCPPPPCGGCPP Input: 42 Output: 4224 排行榜 由于这是一个代码高尔夫挑战,因此禁止了标准漏洞,以字节为单位的最短答案胜出!但是,这也是在任何特定语言中答案最短的竞赛。尽管Java答案不太可能会击败perl或某些打高尔夫球语言的答案,但拥有最短的Java答案仍然令人印象深刻。因此,您可以使用此页首横幅查看 所有语言中最短的答案,以及 每种语言的最短答案。 为确保您的答案显示出来,请使用以下Markdown模板以标题开头。 # Language Name, N …
42 code-golf  string  code-golf  math  geometry  data-structures  repeated-transformation  code-golf  number  random  code-golf  math  rational-numbers  code-golf  ascii-art  animation  code-golf  ascii-art  number  code-golf  math  number  code-golf  data-structures  code-golf  string  parsing  code-golf  array-manipulation  random  permutations  code-golf  string  code-golf  parsing  code-golf  string  quine  code-golf  string  parsing  comment  code-golf  string  counting  natural-language  code-golf  string  decision-problem  code-golf  math  code-challenge  metagolf  test-battery  code-golf  string  code-golf  math  number  arithmetic  source-layout  code-golf  number  primes  decision-problem  code-golf  math  arithmetic  code-golf  date  code-golf  string  cryptography  code-golf  code-golf  chess  board-game  code-golf  geometry  grid  puzzle-solver  set-partitions  code-golf  number  natural-language  code-golf  ascii-art  code-golf  math  code-golf  string  ascii-art  kolmogorov-complexity  code-golf  string  natural-language  code-golf  game  board-game  tic-tac-toe  code-golf  ascii-art  hexagonal-grid  code-golf  string  comment  code-golf  internet  code-golf  sorting  code-golf  kolmogorov-complexity  unicode  code-golf  tips  code-golf  string  natural-language  code-golf  string  kolmogorov-complexity  source-layout  hello-world  code-golf  string  kolmogorov-complexity  counting  natural-language  code-golf  random  quine  code-golf  string  math  bitwise  code-golf  permutations  code-golf  string  code-golf  arithmetic 

30
至少h与至少h
输入项 非负整数列表。 输出量 最大的非负整数h,使得h列表中的至少一个数字大于或等于h。 测试用例 [0,0,0,0] -> 0 [12,312,33,12] -> 4 [1,2,3,4,5,6,7] -> 4 [22,33,1,2,4] -> 3 [1000,2,2,2] -> 2 [23,42,12,92,39,46,23,56,31,12,43,23,54,23,56,73,35,73,42,12,10,15,35,23,12,42] -> 20 规则 您可以编写完整的程序或函数,也可以使用匿名函数。这是代码高尔夫球,因此最少的字节数获胜。不允许出现标准漏洞。 背景 的h指数是在学术界使用的概念,其目的是捕捉研究员的影响和生产力。根据Wikipedia的说法,如果研究人员已发表h条科学文章,则该文章的索引为h,其中每篇科学文章均被h引用至少h次。因此,这个挑战是关于从引用计数列表中计算h指数。 更新资料 哇,好极了!我接受了最短的一个,但是如果有人提出一个更短的一个,我将相应地更新我的选择。 语言获胜者 这是按语言划分的获奖者名单,我还将尝试保持最新状态。我包括了所有分数均为非负数的帖子。如果我在这里犯了一个错误,请纠正我。 APL:@MorisZucca提供的7个字节 Bash + coreutils:29个字节,@ DigitalTrauma C#:@ LegionMammal978的103个字节 C ++:@ user9587的219字节 CJam:@nutki提供 15个字节 GolfScript:@IlmariKaronen提供的 13个字节 Haskell:@proudhaskeller提供的40个字节 J:@ɐɔıʇǝɥʇuʎs提供的12个字节 Java:@Ypnypn的107个字节 JavaScript:@ edc65提供的48个字节 …

30
像兔子一样跳过!
给定任何合理格式的非负整数列表,请对其进行迭代,并跳过与您踩到的每个整数一样多的元素。 这是一个工作示例: [0, 1, 0, 2, 5, 1, 3, 1, 6, 2] | [] ^ First element, always include it [0, 1, 0, 2, 5, 1, 3, 1, 6, 2] | [0] ^ Skip 0 elements [0, 1, 0, 2, 5, 1, 3, 1, 6, 2] | [0, 1] ^ …

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.