将锯齿状数组填充为正方形

2021-02-16 20:20

给定二维锯齿状数组和填充值,用填充值填充两个维度的数组,以确保其为正方形而不是锯齿状(即,所有行的长度相同,且长度与行数相同)。填充值应始终添加到“边

解答动态

  • Haskell,67 bytes m%v

    • let l?x=take(最大$lengthgt;(1lt;$>;百万?[]在线试用!

      • K(ngn/K),21 19字节 {y^x.!'2#

        • /#'x,,x} 在线试用!

          • /#'x,,x获取输出的大小(即每行计数和行数的最大值)!'2#建立一个0..x大小的两个副本的列表(例如(0 1 2 3;0 1 2 3))。dot apply into the input(out-of-bound access result in 0Ns)y^用fill number

            • APL(Dyalog Extended),26 bytes(SBCS) Anonymous infix lambda替换nulls,以fill作为左参数,array作为右参数。
              {g←1?°↑↑↑?°↑↑??@(?~g=???g?} 在线试用!
              {…}?dfn;左参数(fill)为?,右参数(array)为?
              ?g←?将g定义为默认值功能:
              ??1?°由2 ???↑?组成的3D数组的第一层,用0填充:
              ?↑?°??由给定行组成的2D数组,用0填充0s和转置的…
              ??↑?2D数组,由给定的行组成,用0s
              ??填充然后:
              ??@(…)?在给定的索引处填充:
              ????其中……
              ??~?有零(亮)。不是)…
              ??g?在完全填充的版本中…
              ???=???数组与给定的一个相同,但所有元素组成1(点亮)。自相等)
              ?g??在完全填充的给定数组中

              • Functional Bash*,167 161 bytes *这是Bash,还有一个附加约束,即不能对变量进行变异。
                f(){m=$(sort-nlt;(wc-l<;$1)

                • tail-1)s=$(seq$m)paste-d'$1quot;$(printfquot;$s)\n%.s";$s)

                  • sed's/^/''cut-d'-f1-$m} 联机试用!
                    两个参数是:
                    $1:包含输入行的文件名$2:填充字符 基本方法是获取正方形的边长(以m为单位存储),然后创建一个m x m的填充文件,将其粘贴到原始文件中,并从每行获取m个字段。
                    希望知道是否有更简洁的方法。

                    • APL(Dyalog Unicode),47 37 32字节SBCS {?@((,?x)~?↑=??)?(x←2/?/?↑?)↑↑↑?} 在高尔夫球上试试吧!
                      一个dfn提交,左边是fill元素,右边是ragged数组。
                      它计算现有元素的索引,并用fill元素替换所有其他元素。
                      -10,借用了Adám的答案。
                      -5来自user.

                      • R,80 90 93 bytes Edit:+10字节修复bug,然后在迟来的意识到填充值应该作为输入后再加上3个字节…
                        函数(l,f,m=matrix(f,dlt;-f+1,1:sum(i

                        • 1)]=i;m} 联机试用!

                          • 木炭,27字节 ???OEηLιLηζIE…+ηEζνζ…+ιEζθζ 在线试用!将填充作为第一个输入,将锯齿状数组作为第二个输入,但如果需要,可以简单地反转它们。使用carbon的默认数组格式输出,即每个元素位于一个单独的行中,行间距为彼此的两倍。前任夷平面:
                            ???oeηlιlηζ 取锯齿状数组中每个元素的长度,加上数组本身的长度,然后取结果的最大值。
                            ie…+ηeζνζ…+ιeζθζ 将空数组连接到锯齿状数组,然后切分到所需的长度。对于该数组的每个元素,连接一个填充值数组,然后切碎到所需的长度。打印结果。

                            • Jelly,8 bytes ?`z?europeа? 一个二元链接,在左侧接受一个可能是锯齿状的二维数组,在右侧接受一个填充值,该填充值生成一个正方形数组,该数组由填充值向右和向下填充。
                              请在线尝试!(添加页脚以格式化结果数组,以便可以看到空的案例工作。)
                              如何? ?`z?europe?-Link:array,A;filler,F?-使用右参数F,作为的右参数:(似乎是?的必需参数,如下)-重复此链接两次:-最后三个链接作为二元-F(当前A,F):`-使用左(A)作为的两个参数:?-tack-e.g。[[1],[2,3]]-gt;矩形数组右填充。?

                              • End

                              免责声明:

                              本页内容仅代表作者本人意见,若因此产生任何纠纷由作者本人负责,概与琴岛网公司无关。本页内容仅供参考,请您根据自身实际情况谨慎操作。尤其涉及您或第三方利益等事项,请咨询专业人士处理。