Biorąc pod uwagę poprawnie nawiasowany ciąg jako dane wejściowe, wypisz listę wszystkich niepustych podciągów w pasujących nawiasach (lub poza wszystkimi nawiasami), z usuniętymi nawiasami zagnieżdżonymi. Każdy podciąg powinien być ciągiem znaków w dokładnie tych samych pasujących nawiasach. Podciągi powinny być wymienione w kolejności od głębokości, a podciągi o tej samej głębokości powinny być wymienione w kolejności, w jakiej występują w ciągu. Załóżmy, że dane wejściowe są zawsze poprawnie nawiasowane.
Możesz założyć, że dane wejściowe zawierają tylko małe litery ASCII i nawiasy.
Twoja odpowiedź powinna być funkcją, która po podaniu łańcucha zwraca listę ciągów.
Przykłady:
'a(b)c(d)e' -> ['ace', 'b', 'd']
'a(b(c)d)e' -> ['ae', 'bd', 'c']
'a((((b))))' -> ['a', 'b']
'a()b' -> ['ab']
'' -> []
'a' -> ['a']
'(((a(b)c(d)e)f)g)h' -> ['h', 'g', 'f', 'ace', 'b', 'd']
'ab(c(((d)ef()g)h()(i)j)kl)()' -> ['ab', 'ckl', 'hj', 'efg', 'i', 'd']
Wygrywa najmniej bajtów.
i
jest mniej zagnieżdżony niż d
.
'i'
i'd'
w odpowiedniej kolejności w ostatnim przypadku testowego?