Dans Elixir, les listes (liées) sont au format [head | tail]
où tête peut être n'importe quoi et queue est une liste du reste de la liste, et []
- la liste vide - est la seule exception à cela.
Les listes peuvent également être écrites comme [1, 2, 3]
ce qui équivaut à[1 | [2 | [3 | []]]]
Votre tâche consiste à convertir une liste comme décrit. L'entrée sera toujours une liste valide (dans Elixir) contenant uniquement des nombres correspondant à l'expression régulière \[(\d+(, ?\d+)*)?\]
. Vous pouvez prendre l'entrée avec (un espace après chaque virgule) ou sans espaces. La sortie peut être avec (un espace avant et après chacun |
) ou sans espaces.
Pour les entrées avec des zéros non significatifs, vous pouvez sortir sans les zéros ou avec.
L'entrée doit être considérée comme une chaîne (si vous écrivez une fonction), tout comme la sortie.
Exemples
[] -> []
[5] -> [5 | []]
[1, 7] -> [1 | [7 | []]]
[4, 4, 4] -> [4 | [4 | [4 | []]]]
[10, 333] -> [10 | [333 | []]]
liés , pas un doublon car cela implique en partie l'ajout de mode ]
à la fin. De plus, la réponse Haskell ici est très différente de celle là-bas.