题目描述
题目解析
回溯的题目,不过这个两个if我就感觉有点难以理解了,不过仔细的思考了一下,确实考虑到了每个位置的情况,特别是针对右边括号
题目代码
class Solution:
def generateParenthesis(self, n: int) -> List[str]:
m=n*2
ans=[]
path=['']*m
def dfs(i,open):
if i==m:
ans.append(''.join(path))
return
if open<n:
path[i]='('
dfs(i+1,open+1)
if i-open<open:
path[i]=")"
dfs(i+1,open)
dfs(0,0)
return ans