Étant donné une chaîne correctement entre parenthèses en entrée, affichez une liste de toutes les sous-chaînes non vides dans les parenthèses correspondantes (ou en dehors de toutes les parenthèses), avec les parenthèses imbriquées supprimées. Chaque sous-chaîne doit être la séquence de caractères exactement dans les mêmes parenthèses correspondantes. Les sous-chaînes doivent être répertoriées par ordre de profondeur et les sous-chaînes de la même profondeur doivent être répertoriées dans l'ordre dans lequel elles apparaissent dans la chaîne. Supposons que l'entrée est toujours correctement entre parenthèses.
Vous pouvez supposer que l'entrée ne contient que des lettres ASCII minuscules et des parenthèses.
Votre réponse doit être une fonction qui, lorsqu'elle reçoit une chaîne, renvoie une liste de chaînes.
Exemples:
'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']
Le moins d'octets gagne.
i
est moins profondément imbriqué que d
.
'i'
et'd'
dans le bon ordre dans le dernier cas de test?