Учитывая неплоский список целых чисел, выведите список списков, содержащих целые числа на каждом уровне вложенности, начиная с уровня с наименьшим вложением, со значениями в их исходном порядке в списке ввода при чтении слева направо. Если два или более списков находятся на одном уровне вложенности во входном списке, они должны быть объединены в один список в выходных данных. Вывод не должен содержать пустых списков - уровни вложенности, содержащие только списки, должны быть полностью пропущены.
Вы можете предположить, что целые числа находятся в (включительно) диапазоне [-100, 100]
. Для списков нет максимальной длины или глубины вложенности. На входе не будет пустых списков - каждый уровень вложенности будет содержать хотя бы одно целое число или список.
Входные и выходные данные должны быть в собственном списке / массиве / перечислимом / итерируемом / вашего языка. формат или в любом разумном, однозначном формате, если в вашем языке отсутствует тип последовательности.
Примеры
[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~{}&