## 22.括号生成
'''
给出 n 代表生成括号的对数,请你写出一个函数,使其能够生成所有可能的并且有效的括号组合。
例如,给出 n = 3,生成结果为:
[
"((()))",
"(()())",
"(())()",
"()(())",
"()()()"
]
'''
n = 3
class Solution:
def generateParenthesis(self, n: int):
ans = []
def write(s='', left_num=0, right_num=0): # 要先设定初始值
if len(s) == 2*n:
ans.append(s)
else:
if left_num < n:
write(s+"(",left_num+1,right_num)
if left_num > right_num:
write(s+")",left_num,right_num+1)
write() # write要在generateParenthesis中运行才能有用
return ans
Solution().generateParenthesis(n)