Dada una matriz posiblemente anidada, no vacía, de enteros positivos de un solo dígito (no garantizado como único), genera la representación de arte ASCII como un árbol, utilizando los caracteres de dibujo de caja ┌ ┴ ┐ ─ │ ┬ ┼
. (Se copiaron de la página de códigos 437, pero puede usar cualquier representación equivalente).
Cada entero de la matriz debe ser una hoja del árbol. Los elementos del mismo nivel profundo en la matriz deben estar presentes en el mismo nivel del árbol. Todos los elementos deben estar separados por suficiente espacio en blanco para ser distintos (depende de usted determinar cuán ancho, mínimo de un espacio entre ellos).
Por ejemplo, una matriz dada [[1, [2]], [3, [4, 5]]]
, genera el siguiente árbol
┌─┴─┐
┌┴┐ ┌┴─┐
1 │ 3 ┌┴┐
2 4 5
Para la matriz, [1, 2, 3]
el árbol podría verse como
┌─┼─┐
1 2 3
Pero la matriz [[1, 2, 3]]
se vería así
│
┌─┼─┐
1 2 3
Mientras que la matriz [1, [1, [1, [1]]]]
podría verse así
┌─┴┐
1 ┌┴─┐
1 ┌┴┐
1 │
1
Como un ejemplo más complicado, [1, [[[2, 3], 4], 5]]
podría ser
┌┴───┐
1 ┌─┴┐
┌─┴┐ 5
┌┴┐ 4
2 3
o varias otras variaciones.
- La entrada y salida se pueden dar por cualquier método conveniente .
- Puede imprimirlo en STDOUT o devolverlo como resultado de una función.
- Un programa completo o una función son aceptables.
- Cualquier cantidad de espacios en blanco extraños es aceptable, siempre y cuando los caracteres se alineen apropiadamente.
- Las lagunas estándar están prohibidas.
- Este es el código de golf, por lo que se aplican todas las reglas habituales de golf, y gana el código más corto (en bytes).
1
es una matriz de 3 artículos: [2,3]
, 4
, y 5
. Pero 4 y 5 no son adyacentes.
[1, [[[2, 3]], [4], 5]]
a mí.
[1,[[[2,3],4],5]]
podría ser un caso de prueba interesante ya que necesita que la raíz se extienda artificialmente para que el subárbol derecho no choque con el subárbol izquierdo.