Bei einer nicht flachen Liste von Ganzzahlen wird eine Liste von Listen ausgegeben, die die Ganzzahlen in jeder Verschachtelungsebene enthält, beginnend mit der am wenigsten verschachtelten Ebene, wobei die Werte in ihrer ursprünglichen Reihenfolge in der Eingabeliste von links nach rechts gelesen werden. Befinden sich zwei oder mehr Listen in der Eingabeliste auf derselben Verschachtelungsebene, sollten sie in der Ausgabe zu einer einzigen Liste zusammengefasst werden. Die Ausgabe sollte keine leeren Listen enthalten. Verschachtelungsebenen, die nur Listen enthalten, sollten vollständig übersprungen werden.
Sie können davon ausgehen, dass die ganzen Zahlen alle im Bereich (einschließlich) liegen [-100, 100]
. Es gibt keine maximale Länge oder Schachtelungstiefe für die Listen. Die Eingabe enthält keine leeren Listen. Jede Verschachtelungsebene enthält mindestens eine Ganzzahl oder Liste.
Die Ein- und Ausgabe muss sich in der systemeigenen Liste / array / enumerable / iterable / etc Ihrer Sprache befinden. Format oder in jedem vernünftigen, eindeutigen Format, wenn in Ihrer Sprache ein Sequenztyp fehlt.
Beispiele
[1, 2, [3, [4, 5], 6, [7, [8], 9]]] => [[1, 2], [3, 6], [4, 5, 7, 9], [8]]
[3, 1, [12, [14, [18], 2], 1], [[4]], 5] => [[3, 1, 5], [12, 1], [14, 2, 4], [18]]
[2, 1, [[5]], 6] => [[2, 1, 6], [5]]
[[54, [43, 76, [[[-19]]]], 20], 12] => [[12], [54, 20], [43, 76], [-19]]
[[[50]], [[50]]] => [[50, 50]]
Cases[#,_?AtomQ,{i}]~Table~{i,Depth@#}~DeleteCases~{}&