Desidero una funzione Python che accetta una stringa e restituisce un array, in cui ogni elemento dell'array è un carattere o un altro array di questo tipo. Gli array annidati sono contrassegnati nella stringa di input iniziando con '(' e finendo con ')'.Come analizzare una stringa e restituire un array nidificato?
Così, la funzione avrebbe agito in questo modo:
1) foo("abc") == ["a", "b", "c"]
2) foo("a(b)c") == ["a", ["b"], "c"]
3) foo("a(b(c))") == ["a", ["b", ["c"]]]
4) foo("a(b(c)") == error: closing bracket is missing
5) foo("a(b))c") == error: opening bracket is missing
6) foo("a)b(c") == error: opening bracket is missing
Nota: Io preferirei una soluzione che è puramente funzionale.
Usa ricorsione qui, è una perfetta vestibilità. Trovare un '(' nel flusso di token significa recurse-into. Trovare un ')' nella chiamata di livello superiore significa che c'è uno squilibrio di bilanciamento. – user2246674
A cosa serve? –
necessario utilizzare lo stack .. –