Desafio retirado daqui e também daqui
Uma sequência de parênteses n consiste em n ( s e n ) s.
Uma sequência de parênteses válida é definida da seguinte maneira:
Você pode encontrar uma maneira de repetir a exclusão do par de parênteses "()" adjacente até que fique vazio.
Por exemplo,
(())são parênteses válidos, você pode apagar o par na 2ª e na 3ª posição e ele se torna(), então você pode torná-lo vazio.)()(não é um parênteses válido, depois de apagar o par na 2ª e 3ª posição, ele se torna)(e você não pode mais apagar
Tarefa
Dado um número n, você precisa gerar toda a sequência correta de parênteses em ordem lexicográfica
A saída pode ser uma matriz, lista ou sequência de caracteres (neste caso, uma sequência por linha)
Você pode usar um par diferente de parênteses, como {}, [], ()ou qualquer sinal abrir-fechar
Exemplo
n = 3
((())) (()()) (())() ()(()) ()()()n = 2
(()) ()()
1s e -1s)?