Menu
CoddyTech

Generate Parentheses

Eine Klammerzeichenfolge ist wohlgeformt, wenn beim Lesen von links nach rechts die Anzahl der ) niemals die Anzahl der ( übersteigt 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.

Gegeben eine Ganzzahl n, gib alle wohlgeformten Zeichenfolgen mit n öffnenden und n schließenden Klammern in lexikografischer Reihenfolge zurück, 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 gilt: Die Antwort lautet 1.430 Zeichenfolgen.

Beispiele

Eingabe
n = 3
Ausgabe
["((()))", "(()())", "(())()", "()(())", "()()()"]
Erklärung
Drei Paare ergeben fünf wohlgeformte Zeichenfolgen. ((())) öffnet zuerst alle drei, daher wird es zuerst sortiert; ()()() schließt jedes Paar sofort und kommt zuletzt.
challenge icon

Weiterführende Frage

Kannst du die wohlgeformten Zeichenfolgen für n Paare zählen, ohne sie zu erzeugen?

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

Test #1

Test #2

Argument

n = 3

Erwartete Ausgabe

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