题目
思路分析
题目要求:生成有效的括号组合
参考博客
递归
- 只有在左右括号都加了n次后,res才会添加
- 如果 if left<n: ,说明当前可以再添加左括号
- 如果 if left>right: 说明当前左括号的个数大于右括号的个数 可以添加右括号
代码展示
class Solution:
def generateParenthesis(self, n: int) -> List[str]:
#在嵌套函数外面定义最后的结果res
res = []
#定义嵌套函数,递归
def fun2(str,left,right):
#只有在左右括号都加了n次后,res才会添加
if left==n and right==n:
res.append(str)
#添加左括号
if left<n:
fun2(str+'(',left+1,right)
#添加右括号
if left>right:
fun2(str+')',left,right+1)
#调用嵌套函数
fun2("",0,0)
return res