Menu
CoddyTech

Generate Parentheses

) nunca fica à frente do número de (, e as duas contagens são iguais no final. Portanto, (())() é bem formada, enquanto ())( não é: seu terceiro caractere fecha um par que nunca foi aberto.

Você recebe um inteiro n. Retorne todas as cadeias bem formadas compostas por n parênteses de abertura e n parênteses de fechamento, em ordem lexicográfica, na qual ( vem antes de ).

Função

generateParenthesis(n: integer) → string-array
ninteger
o número de pares de parênteses
Retornastring-array
toda sequência bem formada de n pares, em ordem lexicográfica

Restrições

  • 1 ≤ n ≤ 8
  • Para n = 8, a resposta contém 1.430 strings.

Exemplos

Entrada
n = 3
Saída
["((()))", "(()())", "(())()", "()(())", "()()()"]
Explicação
Três pares podem ser organizados de cinco maneiras bem formadas. ((())) abre os três antes de fechar qualquer um e, como ( vem primeiro na ordenação, aparece no início da lista; ()()() fecha cada par imediatamente e aparece no final.

lock icon+10 testes ocultos ao enviar

challenge icon

Para ir além

Você consegue contar as strings bem formadas para n pares sem gerá-las?

Redefinir código
def generateParenthesis(n):
    # Escreva o código aqui
Casos de teste

Caso 1

Caso 2

Entrada

n = 3

Esperado

["((()))", "(()())", "(())()", "()(())", "()()()"]