중괄호 문자열은 *()[]
중괄호가 올바르게 일치 하는 문자로 구성된 문자열로 정의 됩니다.
[brace-string] ::= [unit] || [unit] [brace-string]
[unit] ::= "" || "*" || "(" [brace-string] ")" || "[" [brace-string] "]"
유효한 괄호 문자열입니다.
((())***[]**)****[(())*]*
그러나 이것들은 아닙니다 :
)(
**(**[*](**)
**([*)]**
당신의 임무는 양의 정수가 주어지면 n
숫자를 입력으로 사용하고 length의 유효한 모든 중괄호 문자열을 출력 (또는 반환) 하는 프로그램 (또는 함수)을 작성하는 것 n
입니다.
명세서
- 문자열을 임의의 순서로 출력 할 수 있습니다.
- 다른 문자로 구분 된 목록 또는 문자열로 출력 할 수 있습니다.
- 프로그램은 0을 올바르게 처리해야합니다. 길이가 0 인 1 개의 가능한 brace-string이 있으며 이는 빈 문자열
""
입니다. - 이것은 code-golf 이므로 바이트 단위로 측정 된 가장 짧은 유효한 답변이 이깁니다.
테스트 사례
0.
1. *
2. ** () []
3. *** ()* []* (*) [*] *() *[]
4. **** ()** []** (*)* [*]* (**) **() **[] *(*) *[*] (()) ()() ()[] ([]) [**] [()] [[]] []() [][] *()* *[]*