¡Todos aman las listas anidadas! Sin embargo, a veces es difícil hacer una lista anidada. Tienes que decidir si quieres anidar más profundo o si necesitas anidar menos profundo. Entonces, para su desafío, debe "Autonest" una lista. Para autonestizar una lista, compare cada par de elementos en la lista.
Si el segundo elemento es más pequeño, separe los dos elementos insertando corchetes de cierre y apertura entre ellos, de esta manera:
} { {2 , 1}
Por ejemplo, se
{2, 1}
convierte{2}, {1}
y se{3, 2, 1}
convierte en{3}, {2}, {1}
Si el segundo elemento es el mismo, no cambie nada. Por ejemplo,
{1, 1, 1}
permanece igual y{2, 1, 1, 1}
se volvería{2}, {1, 1, 1}
.Si el segundo elemento es más grande, anide cada elemento siguiente un nivel más profundo. Por ejemplo,
{1, 2}
se convertiría{1, {2}}
y{1, 2, 3}
se convertiría en{1, {2, {3}}}
El reto
Debe escribir un programa o función que tome una lista de números y devuelva la misma lista después de que se haya autoajustado. Tome esta entrada en el formato de lista nativa de su idioma (o la alternativa más cercana) o como una cadena. No tiene que usar llaves como lo hice en mis ejemplos. Puede usar cualquier tipo de paréntesis que sea más natural en su idioma, siempre que sea coherente. Puede asumir con seguridad que la lista solo contendrá enteros. También puede suponer que la lista tendrá al menos 2 números. Aquí hay una muestra de IO:
{1, 3, 2} --> {1, {3}, {2}}
{1, 2, 3, 4, 5, 6} --> {1, {2, {3, {4, {5, {6}}}}}}
{6, 5, 4, 3, 2, 1} --> {6}, {5}, {4}, {3}, {2}, {1}
{7, 3, 3, 2, 6, 4} --> {7}, {3, 3}, {2, {6}, {4}}
{7, 3, 1, -8, 4, 8, 2, -9, 2, 8} --> {7}, {3}, {1}, {-8, {4, {8}, {2}, {-9, {2, {8}}}}}
Se aplican las lagunas estándar, ¡y gana la respuesta más corta en bytes!
[-100, 100]
pero no planeo dar entradas gigantes.
{2, 1}
convierte en {2}, {1}
" ¿Cómo es ese nivel más alto? ? Un nivel más alto sería {2}, 1
. Lo que tienes es el mismo nivel.