Hinweis: Dies ist die Nummer 2 in einer Reihe von Array-Manipulationsherausforderungen . Für die vorherige Herausforderung klicken Sie hier .
Geschachtelte Listen trennen
Um Werte in einer verschachtelten Liste zu trennen, reduzieren Sie diese und schließen Sie jeden Wert so ab, dass er dieselbe verschachtelte Tiefe aufweist wie zuvor.
Das heißt, diese Liste:
[1, [2, 3], [4, 4, [5, 2], 1]]
Würde werden:
[1, [2], [3], [4], [4], [[5]], [[2]], [1]]
Die Herausforderung
Ihre Aufgabe ist es, ein Programm zu schreiben, das eine verschachtelte Liste positiver Ganzzahlen (innerhalb der Grenzen Ihrer Sprache) verwendet und diese Trennoperation ausführt.
Sie können eine Funktion übergeben, die die Liste als Argument verwendet, oder ein vollständiges Programm, das E / A ausführt.
Da dies Codegolf ist , gewinnt die kürzeste Einsendung (in Bytes)! *
* Standard-Golflöcher sind verboten. Sie kennen die Übung.
Testfälle
Eingabelisten enthalten immer nur Ganzzahlen in der Standard-Ganzzahlgröße Ihrer Sprache. Um zu vermeiden, dass die Einschränkungen der Sprachen den Wettbewerb behindern, werden die Werte nicht in Tiefen von mehr als 10 verschachtelt.
Sie können davon ausgehen, dass die Eingabe keine leeren Unterlisten enthält: Zum Beispiel - [[5, []]]
wird nicht angegeben. Die Hauptliste könnte jedoch leer sein.
[] -> []
[[1, 2]] -> [[1], [2]]
[3, [4, 5]] -> [3, [4], [5]]
[3, [3, [3]]] -> [3, [3], [[3]]]
[[6, [[7]]]] -> [[6], [[[7]]]]
[[5, 10], 11] -> [[5], [10], 11]
Zögern Sie nicht, einen Kommentar zu hinterlassen, wenn ich einen Eckfall verpasst habe.
Beispiel
Ich habe eine schnelle (ungolfed) Python 3-Lösung als Beispiel zusammengestellt - Sie können sie auf repl.it testen .