Menu
CoddyTech

Generate Parentheses

Uma sequência de parênteses está bem formada quando, ao lê-la da esquerda para a direita, a contagem de ) nunca ultrapassa a contagem de (, e as duas contagens são iguais no final. Portanto, (())() está bem formada, enquanto ())( não está: seu terceiro caractere fecha um par que nunca foi aberto.

Dado um inteiro n, retorne todas as sequências bem formadas com n parênteses de abertura e n parênteses de fechamento, ordenadas 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 string bem formada de n pares, em ordem lexicográfica

Restrições

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

Exemplos

Entrada
n = 3
Saída
["((()))", "(()())", "(())()", "()(())", "()()()"]
Explicação
Três pares formam cinco strings bem formadas. ((())) abre os três primeiro, então vem primeiro na ordenação; ()()() fecha cada par de uma só vez e fica por último.
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

Teste #1

Teste #2

Argumento

n = 3

Saída Esperada

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