可惜没如果=_=
时光的河入海流

题目链接在这里:

还是比较经典的括号匹配问题,这题学习了函数内套子函数的写法,但是关于全局变量还是有一点问题要问问龙哥,先挖个坑放这……

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)
posted on 2023-03-26 06:31  珍珠鸟  阅读(10)  评论(0编辑  收藏  举报