括号。设计一种算法,打印n对括号的所有合法的(例如,开闭一一对应)组合。
说明:解集不能包含重复的子集。
例如,给出 n = 3,生成结果为:
[
"((()))",
"(()())",
"(())()",
"()(())",
"()()()"
]
Python 解答:
class Solution:
def generateParenthesis(self, n: int) -> List[str]:
lis = []
def recu(res, i, j, n):
if i == n and j == n:
lis.append(res)
return
elif i > n or j > n or j > i:
return
elif i < n or j < n:
recu(res+')', i, j+1, n)
recu(res+'(', i+1, j, n)
recu('', 0, 0, n)
return lis
留言