*()[]
中括弧は、中括弧が正しく一致する文字で構成される文字列として定義されます。
[brace-string] ::= [unit] || [unit] [brace-string]
[unit] ::= "" || "*" || "(" [brace-string] ")" || "[" [brace-string] "]"
これは有効なブレース文字列です。
((())***[]**)****[(())*]*
しかし、これらはそうではありません:
)(
**(**[*](**)
**([*)]**
あなたの仕事は、正の整数を与えられ、n
入力として数値を取り、長さのすべての有効な中括弧文字列を出力する(または返す)プログラム(または関数)を書くことですn
。
仕様書
- 文字列は任意の順序で出力できます。
- リストまたは異なる文字で区切られた文字列として出力できます。
- プログラムは0を正しく処理する必要があります。長さ0のブレース文字列が1つありますが、これは空の文字列
""
です。 - これはcode-golfであるため、バイト単位で測定された最短の有効な回答が勝ちます。
テストケース
0.
1. *
2. ** () []
3. *** ()* []* (*) [*] *() *[]
4. **** ()** []** (*)* [*]* (**) **() **[] *(*) *[*] (()) ()() ()[] ([]) [**] [()] [[]] []() [][] *()* *[]*