Menu
CoddyTech

Generate Parentheses

Eine Klammerzeichenfolge ist wohlgeformt, wenn die Anzahl der ) beim Lesen von links nach rechts nie größer wird als die Anzahl der ( und beide Anzahlen am Ende gleich sind. Daher ist (())() wohlgeformt, während ())( es nicht ist: Ihr drittes Zeichen schließt ein Paar, das nie geöffnet wurde.

Du erhältst eine ganze Zahl n. Gib alle wohlgeformten Zeichenfolgen aus n öffnenden und n schließenden Klammern zurück, sortiert in lexikografischer Reihenfolge, wobei ( vor ) kommt.

Funktion

generateParenthesis(n: integer) → string-array
ninteger
die Anzahl der Klammerpaare
Gibt zurückstring-array
jede wohlgeformte Zeichenkette aus n Paaren, in lexikografischer Reihenfolge

Einschränkungen

  • 1 ≤ n ≤ 8
  • Für n = 8 gibt es 1.430 Zeichenfolgen.

Beispiele

Eingabe
n = 3
Ausgabe
["((()))", "(()())", "(())()", "()(())", "()()()"]
Erklärung
Drei Paare lassen sich auf fünf wohlgeformte Arten anordnen. ((())) öffnet alle drei, bevor eines davon geschlossen wird, und da ( zuerst sortiert wird, steht diese Variante an erster Stelle; ()()() schließt jedes Paar sofort und steht daher an letzter Stelle.

lock icon+10 versteckte Tests beim Einreichen

challenge icon

Weiterführende Frage

Kannst du die korrekt geformten Zeichenfolgen für n Paare zählen, ohne sie zu generieren?

Code zurücksetzen
def generateParenthesis(n):
    # Schreibe hier den Code
Testfälle

Fall 1

Fall 2

Eingabe

n = 3

Erwartet

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