题目链接在这里:
还是比较经典的括号匹配问题,这题学习了函数内套子函数的写法,但是关于全局变量还是有一点问题要问问龙哥,先挖个坑放这……
from ast import List
# class Solution:
# def generateParenthesis(self, n: int) -> List:
# ans = []
# zt = []
# cnt = 0
# def dfs(x):
# global cnt
# if x == 2*n+1:
# ans.append("".join(zt))
# return
# if cnt>0:
# cnt-=1
# zt.append(')')
# dfs(x+1)
# zt.pop()
# cnt+=1
# if cnt<n:
# cnt+=1
# zt.append('(')
# dfs(x+1)
# zt.pop()
# cnt-=1
# dfs(1)
# return ans
class Solution:
def generateParenthesis(self, n: int) -> List:
ans = []
zt = []
def dfs(x,cnt):
if x == 2*n+1:
if cnt == 0:
ans.append("".join(zt))
return
if cnt>0:
zt.append(')')
dfs(x+1,cnt-1)
zt.pop()
if cnt<n:
zt.append('(')
dfs(x+1,cnt+1)
zt.pop()
dfs(1,0)
return ans
if __name__=="__main__":
n = 3
ans = Solution().generateParenthesis(n=n)
print(ans)
未来是什么样,未来会发生什么,谁也不知道。
但是我知道,
起码从今天开始努力,
肯定比从明天开始努力,
要快一天实现梦想。
千里之行,始于足下! ——《那年那兔那些事儿》