Sfida presa da qui e anche qui
Una sequenza di n parentesi è composta da n (
s e n )
s.
Una sequenza di parentesi valida è definita come la seguente:
È possibile trovare un modo per ripetere la cancellazione della parentesi adiacente "()" fino a quando non diventa vuota.
Ad esempio,
(())
è una parentesi valida, puoi cancellare la coppia nella seconda e terza posizione e diventa()
, quindi puoi renderla vuota.)()(
non è una parentesi valida, dopo aver cancellato la coppia in seconda e terza posizione, diventa)(
e non è più possibile cancellare
Compito
Dato un numero n è necessario generare tutta la sequenza di parentesi corretta in ordine lessicografico
L'output può essere una matrice, un elenco o una stringa (in questo caso una sequenza per riga)
È possibile utilizzare un paio di parentesi, come diverso {}
, []
, ()
o alcun segno open-close
Esempio
n = 3
((())) (()()) (())() ()(()) ()()()
n = 2
(()) ()()
1
s e -1
s)?