Questions tagged «array-manipulation»

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

18
这是有效的Takuzu棋盘吗?
Takuzu是一种逻辑游戏,您必须使用包含0s和1s的单元格完成网格。网格必须遵循3条规则: 三个水平或垂直连续的像元不能相同。 必须有相等的0s和1每行和每一列中 s。 没有两行可以相同,也没有两列可以相同。 让我们看一个完成的网格: 0011 1100 0101 1010 正如你所看到的,这款主板遵循规则1,2和3。没有三个相同的水平或垂直单元格,所有行和列都包含相等数量的0s和1s,并且没有两行和两列相同。 让我们看一下无效的网格: 110100 010011 011010 101100 100011 001101 这个网格存在很多问题。例如,row连续5有三个0s,column连续2有三个1s,然后是三个0s。因此,这不是有效的网格。 任务: 您的任务是制作一个给定n* n 0的2D数组和1 s,以验证电路板以查看其是否为有效的成品Takuzu电路板。 例子: 0011 1100 0101 1010 该董事会遵循所有规则,因此是有效的Takuzu董事会。您必须为此返回真实值。 11 00 这不是有效的木板行1,不遵守规则2。您必须为此返回一个false值。 100110 101001 010101 100110 011010 011001 这不是有效的木板,它(仅)由于规则3而失败-第一和第四行相同。 110100 001011 010011 101100 100110 011001 这不是有效的木板,它(仅)由于规则3而失败-第一和第四列相同。 011010 010101 101100 …

30
帮我洗衣服
救命!我的全自动黑暗照明分离器V3001.01坏了!:( 指导方针 任务 编写一个程序,该程序将以任意数量的字符串(字母L或字母D(代表亮或暗))输入一个数组(或某些语言的列表),并输出包含两个数组的数组,一个与所有的L和一个与所有的D。 规则 这是代码高尔夫,所以最短的答案以字节为单位 输入只会包含大写字母 输出中的L必须与输入中的L数量相同,D的数量相同 输入只能有一个元素(甚至可能有零个元素) 如果一个或两个输出数组不包含任何元素,则输出一个空列表(在某些语言中,这可能意味着您需要输出一个字符串) 始终将第一个数组作为L的数组 输出示例: ["L","D","L","D","D"] -> [["L","L"],["D","D","D"]] ["L","L","L"] -> [["L","L","L"],[]] ["D","D"] -> [[],["D","D"]] [] -> [[],[]]

6
修正我对矩阵列表的表示法,第1部分
有时,我的代码中包含常数矩阵列表: [ [[1, 0], [0, 1]], [[1, 0], [0,-1]], [[0, 1], [1, 0]], [[0,-1], [1, 0]] ] 屏幕空间的使用非常糟糕。我宁愿将它们彼此相邻写: [ [[1, 0], [[1, 0], [[0, 1], [[0,-1], [0, 1]], [0,-1]], [1, 0]], [1, 0]] ] 您会发现这仍然是一个语法上有效的嵌套列表,它不再是矩形,并且具有非常不同的结构(特别是,每当我添加大于1x1的矩阵时,它就会变得更深)。但是,仍然可以从这个新列表中重建矩阵的初始列表。 为了将来能够使用此语法,我需要您编写一些代码,以将以水平排列方式编写的数组转换为它们表示的矩阵列表。 为确保答案不对源代码中的布局执行2D模式匹配,输入将仅作为数组对象给出,或者如果您采用字符串表示形式,则输入将不包含任何空格以指示文字是用代码编写的。因此,您将获得如下输入: [[[1, 0], [[1, 0], [[0, 1], [[0,-1], [0, 1]], [0,-1]], [1, 0]], [1, …

30
算上我的零钱
您的任务是对包含字符串“ quarter”,“ dime”,“ nickel”和“ penny”的数组进行无数次排序(无特定顺序),然​​后对其进行排序,以使它们的顺序为:(quarter dime nickel penny换句话说,最高至最低货币价值)。 规则 您的程序必须将包含美国硬币名称的数组作为输入,并按货币值从大到小对它们进行排序。 对于那些不是来自美国或不使用零钱的人,美国硬币的价值(从最大到最小)是: 季度:25美分 一角钱:10美分 镍:5美分 竹enny:1分 您可以按照任何希望的方式对该数组进行排序,只要输出按上面显示的货币值排序即可。 输入可以以任何方式获取,无论是命令行参数还是STDIN。 输入数组将全部为小写字符串,如下所示: quarter dime nickel nickel quarter dime penny penny 输入和输出的实际格式由您决定。 测试用例 "penny nickel dime quarter" -> "quarter dime nickel penny" "nickel penny penny quarter quarter quarter dime dime dime dime" -> "quarter quarter …

8
包装季节性礼物
任务 给定一个包装器元素和一个非锯齿状的3D数组,将数组顶部,底部和四周包裹起来。您必须同时处理字符数据和数字数据,但是包装器和当前数据将具有相同的数据类型。 角色示例 对于字符数据,您可以选择处理单个字符的3D数组或字符串的2D数组: 给定2层2行4列字符数组 [[["Y","o","u","r"], ["g","i","f","t"]], [["g","o","e","s"], ["h","e","r","e"]]] 和字符".",回答4层,4行,6列字符数组 [[[".",".",".",".",".","."], [".",".",".",".",".","."], [".",".",".",".",".","."], [".",".",".",".",".","."]], [[".",".",".",".",".","."], [".","Y","o","u","r","."], [".","g","i","f","t","."], [".",".",".",".",".","."]], [[".",".",".",".",".","."], [".","g","o","e","s","."], [".","h","e","r","e","."], [".",".",".",".",".","."]], [[".",".",".",".",".","."], [".",".",".",".",".","."], [".",".",".",".",".","."], [".",".",".",".",".","."]]] 或给出2行2列的4个字符的字符串数组 [["Your", "gift"], ["goes", "here"]] 和字符".",回答4行4列的6个字符的字符串数组 [["......", "......", "......", "......"], ["......", ".Your.", ".gift.", "......"], ["......", ".goes.", ".here.", "......"], ["......", "......", "......", "......"]] 数值示例 给定2层2行2列数字数组 …

28
对整数列表进行排名
您会得到一个非空的正整数列表,例如 [6 2 9 7 2 6 5 3 3 4] 您应该按其值对这些数字进行排名,但是在排行榜中通常如此,如果存在平局,则所有并列的数字都将获得相同的排名,而跳过适当的排名数。因此,以上列表的预期输出为 [3 9 1 2 9 3 5 7 7 6] 例如,输入中的最高值为9,因此这成为了1(第一等级)。第三高的值为6,因此都6变为3,并且排名4完全跳过。 规则 您可以使用任何方便,明确,平坦的列表格式进行输入和输出。输出中的第一/最小等级应始终为1。 您可以编写程序或函数,并使用我们的任何标准方法来接收输入和提供输出。 您可以使用任何编程语言,但是请注意,默认情况下,这些漏洞是禁止的。 这是代码高尔夫球,因此以字节为单位的最短有效答案为准。 测试用例 [8] -> [1] [1 15] -> [2 1] [18 14 11] -> [1 2 3] [11 16 14 8] -> [3 …

3
原子比例游戏
您的任务是使机器人扮演得分最高的Atomas。 游戏的运作方式: 游戏板以6个“原子”的环开头,数字范围为1到3。您可以“玩”两个原子之间或另一个原子上的原子,具体取决于原子本身。 您可以有一个普通原子,也可以有一个特殊原子。 正常原子: 您可以在板上任意两个可用原子之间播放普通原子。 您从处于该范围内的原子开始1 to 3,但是该范围每40移动一次就增加1(因此,在40移动之后,范围变为2 to 4)。 如果板上的原子小于该范围,则有1 / no. of atoms of that number on the board可能产生。 假设您有一个2要玩的地方,董事会看起来像这样: 1 1 2 1 让我们将放在的2右侧1。 董事会现在变成: 1 1 2 1 2 注意:木板环绕,所以1最左侧的实际上2是最右侧的旁边。稍后将很重要。 有“特殊”原子的4种类型,它们是: 的+原子: 这个原子在两个原子之间起作用。它有五分之一的机会产卵。 如果原子两侧的+原子相同,则会发生聚变。运作方式如下: The two atoms fuse together to create an atom one higher. …
21 code-challenge  game  code-golf  combinatorics  permutations  code-golf  image-processing  brainfuck  encode  steganography  code-golf  ascii-art  code-golf  ascii-art  kolmogorov-complexity  code-golf  ascii-art  fibonacci  code-golf  string  code-golf  sorting  popularity-contest  statistics  code-golf  ascii-art  kolmogorov-complexity  code-golf  code-golf  ascii-art  tic-tac-toe  code-golf  string  code-challenge  classification  test-battery  binary-matrix  code-golf  math  arithmetic  code-golf  ascii-art  random  code-golf  string  code-golf  number  binary  bitwise  code-golf  number  arithmetic  code-golf  math  ascii-art  code-golf  string  ascii-art  code-golf  string  ascii-art  code-golf  string  code-golf  counting  code-golf  number  binary  bitwise  decision-problem  code-golf  array-manipulation  code-golf  tips  brain-flak  code-challenge  quine  source-layout  code-generation  code-golf  linear-algebra  matrix  abstract-algebra  binary-matrix  code-golf  string  palindrome  code-golf  puzzle-solver  sudoku  code-golf  ascii-art  code-golf  graphical-output  internet  code-golf  ascii-art  kolmogorov-complexity  code-golf  math  code-golf  clock 

30
用给定的宽度绘制空心的#
我从Codingame那里获得了这一挑战,并且对比我的更好的解决方案感到好奇: 通过标准输入给定宽度,在给定的宽度和长度上绘制一个空心的#号正方形。 例: 5结果 ##### # # # # # # ##### 我用python解决了这个问题,所以我对其他python代码特别感兴趣。但是,请随时以所需的任何语言发布您的解决方案。
21 code-golf  string  ascii-art  number  code-golf  grid  code-golf  string  ascii-art  code-golf  alphabet  cipher  code-golf  math  number  code-golf  quine  code-golf  palindrome  polyglot  code-golf  number  array-manipulation  counting  logic  code-golf  string  primes  binary  decision-problem  code-golf  ascii-art  kolmogorov-complexity  popularity-contest  code-golf  probability-theory  code-golf  string  code-golf  python  polyglot  programming-puzzle  c++  code-golf  math  code-golf  binary  integer  bitwise  code-golf  rational-numbers  code-golf  string  palindrome  code-golf  ascii-art  code-golf  code-golf  string  fibonacci  code-golf  math  sequence  code-golf  code-golf  string  palindrome  code-golf  string  code-golf  math  primes  source-layout  code-golf  sequence  binary  integer  code-golf  math  arithmetic  game  code-golf  restricted-source  palindrome  code-golf  restricted-source  palindrome  code-golf  combinatorics  binary  code-golf  string  math  code-golf  ascii-art  number  code-golf  cipher  code-golf  base-conversion  counting  code-golf  sequence  random  classification  code-golf  string  subsequence  code-golf  permutations  code-golf  string  code-golf  string  cipher  code-golf  kolmogorov-complexity  arithmetic  integer  code-golf  quine  markov-chain  code-golf  string  code-golf  code-golf  ascii-art  maze 

14
找出最大为1s的矩形
背景 我想购买一块土地并在上面建造房子。我的房子应该是矩形的,并且要尽可能大。但是,可用的地块上有很多我无法建立的岩石区域,因此在地块上安装潜在的房屋时遇到了麻烦。我希望您编写一个程序为我分析情节。 输入输出 您的输入是矩形2D数组,其大小至少为1×1,且采用任何合理的格式。数组代表一块土地;1s是可以建造房屋的“好”区域,s是无法建造房屋0的“多岩石”区域。 您的输出应为1输入数组中s 的实心矩形的最大面积。它代表了我可以在该地块上建造的最大房屋的面积。请注意,如果1输入中没有,则输出为0。 例 考虑输入 101 011 111 1s 的最大矩形是右下角的2×2矩形。这表示正确的输出是4。 规则和计分 您可以编写完整的程序或函数。最低字节数获胜,并且不允许出现标准漏洞。 测试用例 0 -> 0 1 -> 1 00 00 -> 0 01 10 -> 1 01 11 -> 2 111 010 111 -> 3 101 011 111 -> 4 0111 1110 1100 -> 4 1111111 …

7
这是子矩阵吗?
这是该挑战的二维概括。 出于我们的目的,如果可以通过从B完全删除许多行和列来获得A,则一个矩阵(或2D数组)A被视为另一个矩阵B的子矩阵。(注意:某些来源有不同/限制性更强的定义。) 这是一个例子: A = [1 4 B = [1 2 3 4 5 6 2 1] 6 5 4 3 2 1 2 1 2 1 2 1 9 1 8 2 7 6] 我们可以从B删除第2、3、5、6和第2、4行以获得A: B = [1 2 3 4 5 6 [1 _ _ 4 _ _ …

1
分隔我的整数
介绍 在称为拓扑的数学领域中,有一些东西称为分离公理。直观地,您有的集合X和子集的集合X,我们可以将其视为属性。如果一个人可以X根据其属性来区分所有项目,则该系统可以很好地分开。分离公理正式化了这个想法。在此挑战中,您的任务是检查给定的三个分离公理X和属性列表。 输入项 您的输入是一个integer n ≥ 2,以及一个整数列表的列表T。中的整数T来自X = [0, 1, ..., n-1]。中的列表T可能为空且未排序,但不会包含重复项。 输出量 您的输出是由三个分离公理确定的四个字符串之一,每个公理都强于最后一个。还有其他公理,但是为了简单起见,我们坚持使用这些公理。 假设对于in 中的所有unique x和,存在一个列表,其中恰好包含其中一个。然后和满足公理T0。yXTXT 假设对于所有in x和yin X,都有两个列表T,其中一个包含x但不包含y,另一个包含y但不包含x。然后X和T满足公理T1。 假设上面的两个列表也不包含公共元素。然后X和T满足公理T2。 你的输出中的一个T2,T1,T0或TS,这取决于上述条件成立(TS手段它们都不做)。请注意,T2比T1强,T1比T0强,并且您应始终输出尽可能强的公理。 规则和计分 您可以编写完整的程序或函数。最低字节数获胜,并且不允许出现标准漏洞。 测试用例 2 [] -> TS 2 [[],[1]] -> T0 2 [[0],[1]] -> T2 3 [[0],[0,1,2],[1,2]] -> TS 3 [[],[0],[0,1],[2]] -> T0 3 [[0],[0,1],[2,1],[0,1,2]] -> T0 3 …

2
这些树是同构的吗?
介绍 在这个挑战中,您的任务是编写一个程序,该程序确定两个给定的树是否同构。树表示有向无环图,其中除根节点之外,每个节点都只有一个输出边缘。如果可以通过重命名节点将一棵树转换为另一棵树,则两棵树是同构的。例如,两棵树(每个边缘朝上) 0 0 /|\ /|\ 1 3 4 1 2 5 |\ /| 2 5 3 4 很容易看出来是同构的。 我们L通过以下方式将树编码为非负整数列表。树的根具有标签0,并且还具有节点1,2,...,length(L)。每个节点i > 0都有一个传出边缘L[i](使用基于1的索引)。例如,列表(在元素下给出索引) [0,0,1,3,2,2,5,0] 1 2 3 4 5 6 7 8 编码树 0 /|\ 1 2 8 | |\ 3 5 6 | | 4 7 输入项 您的输入是两个非负整数列表,以本机格式或您的语言给出。它们以上面指定的方式编码两棵树。您可以假设以下条件: 他们不是空的。 它们具有相同的长度。 …

18
整数百分比
编写一个函数,该函数接受一个正整数列表,并返回一个整数列表,该整数列表近似于相同位置中相应整数的总百分比。 返回列表中的所有整数必须正好等于100。您可以假定传入的整数之和大于0。只要以百分比形式返回的任何单个结果整数,就可以舍入或截断小数在任一方向上的偏离不超过1。 p([1,0,2]) -> [33,0,67] or [34,0,66] p([1000,1000]) -> [50,50] p([1,1,2,4]) -> [12,12,25,51] or [13,12,25,50] or [12,13,25,50] or [12,12,26,50] p([0,0,0,5,0]) -> [0,0,0,100,0] 这是代码高尔夫球,因此以字节为单位的最短代码胜出!

16
位串物理
背景 是的,位串物理是真实的东西。这个想法是用仅在概率规则或某些规则下演化的比特串来构造新的物理学理论。尽管阅读了几篇有关它的论文,但我还是很困惑。但是,比特串世界使高尔夫成为一个不错的小代码。 程序宇宙 位串物理发生在所谓的程序宇宙中。在宇宙的演化的每个步骤中,存在有限列表L一些长度的位串的k,首先是两个元素的列表[10,11],其中k = 2。一个时间步的处理如下(使用类似Python的伪代码)。 A := random element of L B := random element of L if A == B: for each C in L: append a random bit to C else: append the bitwise XOR of A and B to L 所有随机选择都是一致随机的,并且彼此独立。 例 4个步骤的示例演变如下所示。从初始列表开始L: 10 11 我们随机选择A …

11
计算Hausdorff距离
介绍 在豪斯多夫距离测量度量空间的两个子集之间的差异。直观地来说,度量空间只是带有内置距离函数的某个集合。在这个挑战中,我们将使用具有普通距离的自然数d(a, b) := abs(a - b)。两个非空有限集之间的Hausdorff距离A和B由下式给出 max(max(min(d(a, b) for b in B) for a in A), max(min(d(a, b) for a in A) for b in B)) 以类似Python的符号表示。Hausdorff距离的计算方法是:找到与A的最近元素的B距离最大的元素B,与到的最近元素的A距离最大的元素,然后取这些距离中的最大值。换句话说,如果Hausdorff距离为d,则的每个元素A都在d的某个元素的距离内B,反之亦然。 输入项 您的输入是一个整数列表。它仅包含元素0,1,2,3,这意味着该列表的给定索引是否是的元件既不A也不B,仅A仅B或两者A和B。例如,输入[0,1,1,0,2,3]表示A = {1,2,5}和B = {4,5},如果我们使用基于0的索引(这没有区别,因为我们的度量标准是转换不变的)。 输出量 您的输出是A和之间的Hausdorff距离B。在上面的示例中,它是3。如果任何一组为空,则距离没有定义,您应返回-1。 规则 您可以编写完整的程序或函数。最低字节数获胜,并且不允许出现标准漏洞。 测试用例 [] -> -1 [0] -> -1 [0,1,0] -> -1 [2,0,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.