Eine *()[]geschweifte Klammer ist eine Zeichenfolge, die aus den Zeichen besteht, in denen geschweifte Klammern richtig übereinstimmen:
[brace-string] ::= [unit] || [unit] [brace-string]
[unit] ::= "" || "*" || "(" [brace-string] ")" || "[" [brace-string] "]"
Dies ist eine gültige geschweifte Klammer:
((())***[]**)****[(())*]*
Das sind aber nicht:
)(
**(**[*](**)
**([*)]**
Ihre Aufgabe ist es, ein Programm (oder eine Funktion) zu schreiben, das bei einer positiven Ganzzahl neine Zahl als Eingabe verwendet und alle gültigen geschweiften Klammern der Länge ausgibt (oder zurückgibt) n.
Spezifikationen
- Sie können die Zeichenfolgen in beliebiger Reihenfolge ausgeben.
- Sie können als Liste oder als durch ein anderes Zeichen getrennte Zeichenfolge ausgeben.
- Ihr Programm muss 0 korrekt behandeln. Es gibt 1 möglichen Klammer-String der Länge 0, der der leere String ist
"". - Das ist Code-Golf , also gewinnt die kürzeste gültige Antwort - gemessen in Bytes .
Testfälle
0.
1. *
2. ** () []
3. *** ()* []* (*) [*] *() *[]
4. **** ()** []** (*)* [*]* (**) **() **[] *(*) *[*] (()) ()() ()[] ([]) [**] [()] [[]] []() [][] *()* *[]*