將鋸齒狀數(shù)組填充為正方形
給定二維鋸齒狀數(shù)組和填充值,用填充值填充兩個(gè)維度的數(shù)組,以確保其為正方形而不是鋸齒狀(即,所有行的長(zhǎng)度相同,且長(zhǎng)度與行數(shù)相同)。填充值應(yīng)始終添加到“邊
解答動(dòng)態(tài)
Haskell,67 bytes m%v
let l?x=take(最大$lengthgt;(1lt;$>;百萬(wàn)?[]在線試用!
K(ngn/K),21 19字節(jié) {y^x.!'2#
/#'x,,x} 在線試用!
/#'x,,x獲取輸出的大小(即每行計(jì)數(shù)和行數(shù)的最大值)!'2#建立一個(gè)0..x大小的兩個(gè)副本的列表(例如(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作為左參數(shù),array作為右參數(shù)。
{g←1?°↑↑↑?°↑↑??@(?~g=???g?} 在線試用!
{…}?dfn;左參數(shù)(fill)為?,右參數(shù)(array)為?
?g←?將g定義為默認(rèn)值功能:
??1?°由2 ???↑?組成的3D數(shù)組的第一層,用0填充:
?↑?°??由給定行組成的2D數(shù)組,用0填充0s和轉(zhuǎn)置的…
??↑?2D數(shù)組,由給定的行組成,用0s
??填充然后:
??@(…)?在給定的索引處填充:
????其中……
??~?有零(亮)。不是)…
??g?在完全填充的版本中…
???=???數(shù)組與給定的一個(gè)相同,但所有元素組成1(點(diǎn)亮)。自相等)
?g??在完全填充的給定數(shù)組中
Functional Bash*,167 161 bytes *這是Bash,還有一個(gè)附加約束,即不能對(duì)變量進(jìn)行變異。
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} 聯(lián)機(jī)試用!
兩個(gè)參數(shù)是:
$1:包含輸入行的文件名$2:填充字符 基本方法是獲取正方形的邊長(zhǎng)(以m為單位存儲(chǔ)),然后創(chuàng)建一個(gè)m x m的填充文件,將其粘貼到原始文件中,并從每行獲取m個(gè)字段。
希望知道是否有更簡(jiǎn)潔的方法。
APL(Dyalog Unicode),47 37 32字節(jié)SBCS {?@((,?x)~?↑=??)?(x←2/?/?↑?)↑↑↑?} 在高爾夫球上試試吧!
一個(gè)dfn提交,左邊是fill元素,右邊是ragged數(shù)組。
它計(jì)算現(xiàn)有元素的索引,并用fill元素替換所有其他元素。
-10,借用了Adám的答案。
-5來自u(píng)ser.
R,80 90 93 bytes Edit:+10字節(jié)修復(fù)bug,然后在遲來的意識(shí)到填充值應(yīng)該作為輸入后再加上3個(gè)字節(jié)…
函數(shù)(l,f,m=matrix(f,dlt;-f+1,1:sum(i1)]=i;m} 聯(lián)機(jī)試用!
木炭,27字節(jié) ???OEηLιLηζIE…+ηEζνζ…+ιEζθζ 在線試用!將填充作為第一個(gè)輸入,將鋸齒狀數(shù)組作為第二個(gè)輸入,但如果需要,可以簡(jiǎn)單地反轉(zhuǎn)它們。使用carbon的默認(rèn)數(shù)組格式輸出,即每個(gè)元素位于一個(gè)單獨(dú)的行中,行間距為彼此的兩倍。前任夷平面:
???oeηlιlηζ 取鋸齒狀數(shù)組中每個(gè)元素的長(zhǎng)度,加上數(shù)組本身的長(zhǎng)度,然后取結(jié)果的最大值。
ie…+ηeζνζ…+ιeζθζ 將空數(shù)組連接到鋸齒狀數(shù)組,然后切分到所需的長(zhǎng)度。對(duì)于該數(shù)組的每個(gè)元素,連接一個(gè)填充值數(shù)組,然后切碎到所需的長(zhǎng)度。打印結(jié)果。
Jelly,8 bytes ?`z?europeа? 一個(gè)二元鏈接,在左側(cè)接受一個(gè)可能是鋸齒狀的二維數(shù)組,在右側(cè)接受一個(gè)填充值,該填充值生成一個(gè)正方形數(shù)組,該數(shù)組由填充值向右和向下填充。
請(qǐng)?jiān)诰嘗試!(添加頁(yè)腳以格式化結(jié)果數(shù)組,以便可以看到空的案例工作。)
如何? ?`z?europe?-Link:array,A;filler,F(xiàn)?-使用右參數(shù)F,作為的右參數(shù):(似乎是?的必需參數(shù),如下)-重復(fù)此鏈接兩次:-最后三個(gè)鏈接作為二元-F(當(dāng)前A,F(xiàn)):`-使用左(A)作為的兩個(gè)參數(shù):?-tack-e.g。[[1],[2,3]]-gt;矩形數(shù)組右填充。?- End
免責(zé)聲明:
本頁(yè)內(nèi)容僅代表作者本人意見,若因此產(chǎn)生任何糾紛由作者本人負(fù)責(zé),概與琴島網(wǎng)公司無關(guān)。本頁(yè)內(nèi)容僅供參考,請(qǐng)您根據(jù)自身實(shí)際情況謹(jǐn)慎操作。尤其涉及您或第三方利益等事項(xiàng),請(qǐng)咨詢專業(yè)人士處理。