DFS:先遍历左括号,再补齐右括号
def generateParenthsis(n):
def dfs(res, s, l, r):
if l==0 and r==0:
res.append(s)
if(l>0):
dfs(res, s+'(', l-1, r)
if(r>l):
dfs(res, s+')', l, r-1)
res = []
dfs(res, '', n, n)
return res
BFS:对每一个左括号,先补齐右括号
def generateParenthsis(n):
def bfs(res, s, l, r):
if l==0 and r==0:
res.append(s)
if(r>l):
bfs(res, s+')', l, r-1)
if(l>0):
bfs(res, s+'(', l-1, r)
res = []
bfs(res, '', n, n)
return res