Uwaga: Jest to numer 2 w serii wyzwań dotyczących manipulacji tablicami . Aby zobaczyć poprzednie wyzwanie, kliknij tutaj .
Rozdzielanie list zagnieżdżonych
Aby oddzielić wartości na liście zagnieżdżonej, spłaszcz ją, a następnie zawiń każdą wartość, aby znajdowała się na tej samej głębokości zagnieżdżenia, co poprzednio.
To znaczy, ta lista:
[1, [2, 3], [4, 4, [5, 2], 1]]
Stanie się:
[1, [2], [3], [4], [4], [[5]], [[2]], [1]]
Wyzwanie
Twoim zadaniem jest napisanie programu, który pobierze dowolną zagnieżdżoną listę liczb całkowitych dodatnich (w granicach twojego języka) i wykona tę operację separacji.
Możesz przesłać funkcję, która przyjmuje listę jako argument, lub pełny program wykonujący operacje we / wy.
Ponieważ jest to kod-golf , wygrywa najkrótsza przesyłka (w bajtach)! *
* Standardowe luki w grze w golfa są zakazane. Znasz zasady.
Przypadki testowe
Listy wejściowe zawsze będą zawierać liczby całkowite w standardowym rozmiarze całkowitym twojego języka. Aby uniknąć ograniczeń języków uniemożliwiających im konkurowanie, wartości nie będą zagnieżdżane na głębokościach większych niż 10.
Możesz założyć, że dane wejściowe nie będą miały pustych list podrzędnych: na przykład - [[5, []]]
nie zostaną podane. Jednak główna lista może być pusta.
[] -> []
[[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]
Nie wahaj się zostawić komentarza, jeśli przegapiłem skrzynkę.
Przykład
Rzuciłem razem szybki (ungolfed) Pythonie 3 rozwiązanie jako przykład - można go przetestować na repl.it .