Reto tomado desde aquí y también aquí
Una secuencia de n paréntesis consta de n (
sy n )
s.
Una secuencia de paréntesis válida se define como la siguiente:
Puede encontrar una manera de repetir el borrado de par de paréntesis adyacentes "()" hasta que quede vacío.
Por ejemplo,
(())
es un paréntesis válido, puede borrar el par en la segunda y tercera posición y se convierte()
, luego puede dejarlo vacío.)()(
no es un paréntesis válido, después de borrar el par en la segunda y tercera posición, se convierte en)(
y no puede borrar más
Tarea
Dado un número n , necesita generar toda la secuencia correcta de paréntesis en orden lexicográfico
La salida puede ser una matriz, lista o cadena (en este caso, una secuencia por línea)
Se puede usar un par diferente de paréntesis como {}
, []
, ()
o cualquier signo de apertura y cierre
Ejemplo
n = 3
((())) (()()) (())() ()(()) ()()()
n = 2
(()) ()()
1
s y -1
s)?