Défi relevé d' ici et aussi ici
Une séquence de n parenthèses se compose de n (
s et n )
s.
Une séquence de parenthèses valide est définie comme suit:
Vous pouvez trouver un moyen de répéter l'effacement de la paire de parenthèses adjacentes "()" jusqu'à ce qu'elle devienne vide.
Par exemple,
(())
est une parenthèse valide, vous pouvez effacer la paire en 2e et 3e position et elle devient()
, puis vous pouvez la rendre vide.)()(
n'est pas une parenthèse valide, après avoir effacé la paire en 2e et 3e position, elle devient)(
et vous ne pouvez plus effacer
Tâche
Étant donné un nombre n, vous devez générer toutes les séquences de parenthèses correctes dans l' ordre lexicographique
La sortie peut être un tableau, une liste ou une chaîne (dans ce cas, une séquence par ligne)
Vous pouvez utiliser une autre paire de parenthèses, comme {}
, []
, ()
ou tout signe d' ouverture-fermeture
Exemple
n = 3
((())) (()()) (())() ()(()) ()()()
n = 2
(()) ()()
1
s et -1
s)?