Tout le monde aime les listes imbriquées! Cependant, il est parfois difficile de créer une liste imbriquée. Vous devez décider si vous souhaitez l'imbriquer plus profondément ou si vous devez l'imbriquer moins profondément. Donc, pour votre défi, vous devez "Autonest" une liste. Pour tester automatiquement une liste, comparez chaque paire d'éléments de la liste.
Si le deuxième élément est plus petit, séparez les deux éléments en insérant des crochets de fermeture et d'ouverture entre eux, comme ceci:
} { {2 , 1}
Par exemple,
{2, 1}
devient{2}, {1}
et{3, 2, 1}
devient{3}, {2}, {1}
Si le deuxième élément est le même, ne changez rien. Par exemple,
{1, 1, 1}
reste le même et{2, 1, 1, 1}
deviendrait{2}, {1, 1, 1}
.Si le deuxième élément est plus grand, imbriquez chaque élément suivant d'un niveau plus profond. Par exemple,
{1, 2}
deviendrait{1, {2}}
et{1, 2, 3}
deviendrait{1, {2, {3}}}
Le défi
Vous devez écrire un programme ou une fonction qui accepte une liste de nombres et renvoie la même liste après avoir été auto-testé. Prenez cette entrée dans le format de liste native de votre langue (ou l'alternative la plus proche) ou sous forme de chaîne. Vous n'avez pas besoin d'utiliser des accolades comme je l'ai fait dans mes exemples. Vous pouvez utiliser le type de parenthèses le plus naturel dans votre langue, à condition que cela soit cohérent. Vous pouvez supposer en toute sécurité que la liste ne contiendra que des entiers. Vous pouvez également supposer que la liste contiendra au moins 2 chiffres. Voici quelques exemples d'E / S:
{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}}}}}
Les failles standard s'appliquent et la réponse la plus courte en octets l'emporte!
[-100, 100]
mais je ne prévois pas de donner des entrées gigantesques.
{2, 1}
devient {2}, {1}
" Comment est-ce qu'un niveau plus haut ? Un niveau supérieur serait {2}, 1
. Ce que vous avez est au même niveau.