数字 n 代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且 有效的 括号组合。
示例 1:
输入:n = 3
输出:["((()))","(()())","(())()","()(())","()()()"]
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/generate-parentheses
题解
根左右遍历
class Solution:
def generateParenthesis(self, n: int) -> List[str]:
re = []
def generate(re, strs,l,r,n):
if l>n or r>n or l<r:
return
if l==n and l==r:
re.append(strs)
return
generate(re,strs+'(',l+1,r,n)
generate(re,strs+')',l,r+1,n)
generate(re,"",0,0,n)
return re