Враховуючи масив будь-якої глибини, намалюйте його вміст межею +-|
навколо кожного підмасива. Це символи ASCII для плюс, мінус та вертикальна труба.
Наприклад, якщо масив є [1, 2, 3]
, намалюйте
+-----+
|1 2 3|
+-----+
Для вкладеного масиву, наприклад [[1, 2, 3], [4, 5], [6, 7, 8]]
, намалюйте
+-----------------+
|+-----+---+-----+|
||1 2 3|4 5|6 7 8||
|+-----+---+-----+|
+-----------------+
Для нерівного масиву, такого як [[[1, 2, 3], [4, 5]], [6, 7, 8]]
, намалюйте
+-------------------+
|+-----------+-----+|
||+-----+---+|6 7 8||
|||1 2 3|4 5|| ||
||+-----+---+| ||
|+-----------+-----+|
+-------------------+
Зауважте, що після малювання залишається більше місця [6, 7, 8]
. Ви можете малювати вміст у верхній, центральній або нижній лінії, але що б ви не вибрали, ви повинні залишатися послідовними.
Цей виклик був натхненний бокс дієсловом <
від Дж.
Правила
- Це код-гольф, тому найкоротший код виграє.
- Вбудовані, що вирішують це, заборонені.
- Вхідний масив буде містити лише негативні цілі значення чи масиви. Кожен масив буде однорідним, тобто його елементи будуть або лише масивами, або лише цілими числами, але ніколи не будуть поєднанням обох.
- Кожен підмасив може бути вкладений на будь-яку глибину.
- Вихід може бути або у вигляді рядка, або як масив рядків, де кожна рядок є рядком виводу.
Випробування
[]
++
||
++
[[], []]
+---+
|+++|
|||||
|+++|
+---+
[[], [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
оскільки я також обмежив цілі числа невід'ємними. Тоді доведеться просто очистити вихідні дані для цих недійсних значень.