LeetCode题库22.括号生成

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
class Solution:
    def generateParenthesis(self, n: int) -> List[str]:
        if n==1:
            return ['()']
        if not n:
            return None
        stack,res,l,r=[],[],[],[]
        for _ in range(n):
            l.append('(')
            r.append(')')
        def dfs(l,r):
            if not l and not r:
                res.append(''.join(i for i in stack))
                return
            if l:
                stack.append(l.pop())
                dfs(l,r)               
                l.append(stack.pop())           
            if r and len(l)!=len(r):
                stack.append(r.pop())
                dfs(l,r)
                r.append(stack.pop())
            print(r)
        dfs(l,r)
        return res

  

posted @   Aneverforget  阅读(3)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
历史上的今天:
2020-10-14 cody challenge Problem 45. Make a Palindrome Number 判断对称数值
点击右上角即可分享
微信分享提示