Menu
CoddyTech

Generate Parentheses

Una stringa di parentesi è ben formata quando, letta da sinistra a destra, il numero di ) non supera mai il numero di ( e i due conteggi sono uguali alla fine. Quindi (())() è ben formata, mentre ())( non lo è: il suo terzo carattere chiude una coppia che non era mai stata aperta.

Dato un intero n, restituisci tutte le stringhe ben formate con n parentesi aperte e n parentesi chiuse, ordinate in ordine lessicografico, dove ( precede ).

Funzione

generateParenthesis(n: integer) → string-array
ninteger
il numero di coppie di parentesi
Restituiscestring-array
ogni stringa ben formata di n coppie, in ordine lessicografico

Vincoli

  • 1 ≤ n ≤ 8
  • Per n = 8, la risposta contiene 1,430 stringhe.

Esempi

Input
n = 3
Output
["((()))", "(()())", "(())()", "()(())", "()()()"]
Spiegazione
Tre coppie formano cinque stringhe ben formate. ((())) apre tutte e tre per prime, quindi viene prima; ()()() chiude subito ogni coppia e viene per ultima.
challenge icon

Per approfondire

Riesci a contare le stringhe ben formate per n coppie senza generarle?

Ripristina il codice
def generateParenthesis(n):
    # Scrivi il codice qui

Test #1

Test #2

Argomento

n = 3

Output atteso

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