大括号字符串定义为由*()[]
大括号正确匹配的字符组成的字符串:
[brace-string] ::= [unit] || [unit] [brace-string]
[unit] ::= "" || "*" || "(" [brace-string] ")" || "[" [brace-string] "]"
这是一个有效的大括号字符串:
((())***[]**)****[(())*]*
但是这些不是:
)(
**(**[*](**)
**([*)]**
您的任务是编写一个程序(或函数),给定一个正整数n
,该程序将一个数字作为输入并输出(或返回)所有有效的length括号n
。
技术指标
- 您可以按任何顺序输出字符串。
- 您可以将其输出为列表或由不同字符分隔的字符串。
- 您的程序必须正确处理0。可能有1个长度为0的大括号字符串,即空字符串
""
。 - 这是代码高尔夫球,因此以字节为单位的最短有效答案为准。
测试用例
0.
1. *
2. ** () []
3. *** ()* []* (*) [*] *() *[]
4. **** ()** []** (*)* [*]* (**) **() **[] *(*) *[*] (()) ()() ()[] ([]) [**] [()] [[]] []() [][] *()* *[]*