Herhangi bir derinlikte bir dizi göz önüne alındığında, içeriğini +-|
her bir alt dizinin sınırlarıyla çizin . Bunlar artı, eksi ve dikey borular için ASCII karakterleridir.
Örneğin, dizi ise [1, 2, 3]
, çizmek
+-----+
|1 2 3|
+-----+
Gibi iç içe geçmiş bir dizide için [[1, 2, 3], [4, 5], [6, 7, 8]]
, çizmek
+-----------------+
|+-----+---+-----+|
||1 2 3|4 5|6 7 8||
|+-----+---+-----+|
+-----------------+
Gibi düzensiz bir dizi için [[[1, 2, 3], [4, 5]], [6, 7, 8]]
çizmek
+-------------------+
|+-----------+-----+|
||+-----+---+|6 7 8||
|||1 2 3|4 5|| ||
||+-----+---+| ||
|+-----------+-----+|
+-------------------+
Çizimden sonra daha fazla alan olduğuna dikkat edin [6, 7, 8]
. İçeriği en üst, orta veya en alt satırda çizebilirsiniz, ancak hangisini seçerseniz, tutarlı kalmalısınız.
Bu meydan okuma J kutusundaki fiilden esinlenmiştir.<
kurallar
- Bu kod golf yani en kısa kod kazanır.
- Bunu çözen yerleşiklere izin verilmez.
- Giriş dizisi yalnızca negatif olmayan tamsayı değerleri veya dizileri içerecektir. Her bir dizi homojen olacaktır, yani elementleri sadece dizilerle veya sadece tamsayılarla değil, her ikisinin karışımından oluşmaz.
- Her alt dizi herhangi bir derinliğe yuvalanabilir.
- Çıktı, bir dize olarak veya her dizenin bir çıktı satırı olduğu bir dize dizisi olarak olabilir.
Test Kılıfları
[]
++
||
++
[[], []]
+---+
|+++|
|||||
|+++|
+---+
[[], [1], [], [2], [], [3], []]
+-----------+
|++-++-++-++|
|||1||2||3|||
|++-++-++-++|
+-----------+
[[[[[0]]]]]
+---------+
|+-------+|
||+-----+||
|||+---+|||
||||+-+||||
|||||0|||||
||||+-+||||
|||+---+|||
||+-----+||
|+-------+|
+---------+
[[[[[4, 3, 2, 1]]]], [[[3, 2, 1]]], [[2, 1]], [1]]
+---------------------------------+
|+-------------+---------+-----+-+|
||+-----------+|+-------+|+---+|1||
|||+---------+|||+-----+|||2 1|| ||
||||+-------+|||||3 2 1|||+---+| ||
|||||4 3 2 1|||||+-----+|| | ||
||||+-------+|||+-------+| | ||
|||+---------+|| | | ||
||+-----------+| | | ||
|+-------------+---------+-----+-+|
+---------------------------------+
-1
, tamsayıları negatif olmayanlarla sınırlandırdığım için diziyi sentinel değerleriyle doldurabilirsiniz . O zaman bu geçersiz değerler için çıktıyı temizlemeniz gerekecekti.