题目链接在这里:
还是比较经典的括号匹配问题,这题学习了函数内套子函数的写法,但是关于全局变量还是有一点问题要问问龙哥,先挖个坑放这……
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)
    未来是什么样,未来会发生什么,谁也不知道。  
但是我知道,  
起码从今天开始努力,  
肯定比从明天开始努力,  
要快一天实现梦想。  
千里之行,始于足下!       ——《那年那兔那些事儿》
 
                    
                     
                    
                 
                    
                 
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号