Dada uma matriz não vazia, possivelmente aninhada, de números inteiros positivos de um dígito (não garantido exclusivo), imprima a representação de arte ASCII como uma árvore, usando os caracteres de desenho de caixa ┌ ┴ ┐ ─ │ ┬ ┼
. (Eles foram copiados da Página 437 do Código, mas você pode usar qualquer representação equivalente).
Todo número inteiro da matriz deve ser uma folha da árvore. Elementos com o mesmo nível na matriz devem estar presentes no mesmo nível da árvore. Todos os elementos devem ser separados por espaços em branco suficientes para serem distintos (depende de você determinar a largura, o mínimo de um espaço entre eles).
Por exemplo, dada matriz [[1, [2]], [3, [4, 5]]]
, produz a seguinte árvore
┌─┴─┐
┌┴┐ ┌┴─┐
1 │ 3 ┌┴┐
2 4 5
Para matriz, [1, 2, 3]
a árvore pode parecer
┌─┼─┐
1 2 3
Mas a matriz [[1, 2, 3]]
pareceria
│
┌─┼─┐
1 2 3
Embora a matriz [1, [1, [1, [1]]]]
possa parecer
┌─┴┐
1 ┌┴─┐
1 ┌┴┐
1 │
1
Como um exemplo mais complicado, [1, [[[2, 3], 4], 5]]
poderia ser
┌┴───┐
1 ┌─┴┐
┌─┴┐ 5
┌┴┐ 4
2 3
ou várias outras variações.
- A entrada e a saída podem ser fornecidas por qualquer método conveniente .
- Você pode imprimi-lo em STDOUT ou retorná-lo como resultado de uma função.
- Um programa completo ou uma função são aceitáveis.
- Qualquer quantidade de espaço em branco estranho é aceitável, desde que os caracteres sejam alinhados adequadamente.
- As brechas padrão são proibidas.
- Isso é código-golfe, portanto todas as regras usuais de golfe se aplicam e o código mais curto (em bytes) vence.
1
de um conjunto de 3 elementos: [2,3]
, 4
, e 5
. Mas 4 e 5 não são adjacentes.
[1, [[[2, 3]], [4], 5]]
me parece .
[1,[[[2,3],4],5]]
pode ser um caso de teste interessante, pois precisa ter a raiz estendida artificialmente para que a subárvore direita não colide com a subárvore esquerda.