Todo mundo adora listas aninhadas! No entanto, às vezes é difícil fazer uma lista aninhada. Você precisa decidir se deseja aninhar mais fundo ou se precisa aninhar menos. Portanto, para o seu desafio, você deve "Autonestar" uma lista. Para autonestear uma lista, compare todos os itens da lista.
Se o segundo item for menor, separe os dois elementos inserindo os colchetes de fechamento e abertura entre eles, assim:
} { {2 , 1}
Por exemplo,
{2, 1}
torna{2}, {1}
-{3, 2, 1}
se e torna - se{3}, {2}, {1}
Se o segundo item for o mesmo, não altere nada. Por exemplo,
{1, 1, 1}
permanece o mesmo e{2, 1, 1, 1}
se tornaria{2}, {1, 1, 1}
.Se o segundo item for maior, aninhe cada item a seguir um nível mais profundo. Por exemplo,
{1, 2}
se tornaria{1, {2}}
e{1, 2, 3}
se tornaria{1, {2, {3}}}
O desafio
Você deve escrever um programa ou função que inclua uma lista de números e retorne a mesma lista após ser testado automaticamente. Pegue essa entrada no formato de lista nativa do seu idioma (ou a alternativa mais próxima) ou como uma string. Você não precisa usar chaves como eu fiz nos meus exemplos. Você pode usar o tipo de colchete mais natural no seu idioma, desde que consistente. Você pode assumir com segurança que a lista conterá apenas números inteiros. Você também pode assumir que a lista terá pelo menos 2 números. Aqui está um exemplo 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}}}}}
As brechas padrão se aplicam e a resposta mais curta em bytes vence!
[-100, 100]
mas eu não estou pensando em fornecer contribuições gigantescas.
{2, 1}
se torna {2}, {1}
" Como é esse nível um nível mais alto ? Um nível mais alto seria {2}, 1
. O que você tem é o mesmo nível.