Учитывая возможно вложенный, непустой массив однозначных положительных целых чисел (не гарантировано уникальных), выведите представление ASCII-art в виде дерева, используя символы рисования блоков ┌ ┴ ┐ ─ │ ┬ ┼
. (Они были скопированы из кодовой страницы 437, но вы можете использовать любое эквивалентное представление).
Каждое целое число массива должно быть листом дерева. Элементы одного уровня глубоко в массиве должны присутствовать на одном уровне дерева. Все элементы должны быть отделены друг от друга достаточным количеством пробелов, чтобы их можно было различить (до вас зависит, какова ширина, минимум одного пробела между ними).
Например, для данного массива [[1, [2]], [3, [4, 5]]]
выведите следующее дерево
┌─┴─┐
┌┴┐ ┌┴─┐
1 │ 3 ┌┴┐
2 4 5
Для массива [1, 2, 3]
дерево может выглядеть так
┌─┼─┐
1 2 3
Но массив [[1, 2, 3]]
будет выглядеть
│
┌─┼─┐
1 2 3
Хотя массив [1, [1, [1, [1]]]]
может выглядеть
┌─┴┐
1 ┌┴─┐
1 ┌┴┐
1 │
1
В качестве более сложного примера, [1, [[[2, 3], 4], 5]]
может быть
┌┴───┐
1 ┌─┴┐
┌─┴┐ 5
┌┴┐ 4
2 3
или несколько других вариантов.
- Вход и выход могут быть заданы любым удобным способом .
- Вы можете распечатать его в STDOUT или вернуть как результат функции.
- Либо полная программа или функция приемлемы.
- Любое количество посторонних пробелов является приемлемым, при условии, что символы выстраиваются соответствующим образом.
- Стандартные лазейки запрещены.
- Это код-гольф, поэтому применяются все обычные правила игры в гольф, и выигрывает самый короткий код (в байтах).
1
представляет собой массив из 3 -х элементов: [2,3]
, 4
, и 5
. Но 4 и 5 не соседствуют.
[1, [[[2, 3]], [4], 5]]
на меня.
[1,[[[2,3],4],5]]
Это может быть интересным тестовым примером, поскольку ему нужно искусственно расширить корень, чтобы правое поддерево не сталкивалось с левым поддеревом.