LeetCode 22. 括号生成

LeetCode 22. 括号生成

数字 n 代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且 有效的 括号组合。

示例 1:

输入:n = 3

输出:["((()))","(()())","(())()","()(())","()()()"]

示例 2:

输入:n = 1

输出:["()"]

提示:

1 <= n <= 8

回溯

python 复制代码
class Solution:
    def generateParenthesis(self, n: int) -> List[str]:
        res_list = []
        self.backtrack(n, n, res_list, [])
        return res_list
    
    def backtrack(self, left, right, res_list, res):
        if left + right == 0:
            res_list.append("".join(res))
        else:
            if left == right:
                left -= 1
                res.append('(')
                self.backtrack(left, right, res_list, res)
                res.pop()
                left += 1
            else:
                if left > 0:
                    left -= 1
                    res.append('(')
                    self.backtrack(left, right, res_list, res)
                    res.pop()
                    left += 1
                if right > 0:
                    right -= 1
                    res.append(')')
                    self.backtrack(left, right, res_list, res)
                    res.pop()
                    right += 1
相关推荐
byzh_rc12 小时前
[认知计算] 专栏总结
线性代数·算法·matlab·信号处理
qq_4335545413 小时前
C++ manacher(求解回文串问题)
开发语言·c++·算法
歌_顿13 小时前
知识蒸馏学习总结
人工智能·算法
圣保罗的大教堂13 小时前
leetcode 1161. 最大层内元素和 中等
leetcode
闲看云起13 小时前
LeetCode-day6:接雨水
算法·leetcode·职场和发展
没学上了14 小时前
VLM_一维离散卷积与二维离散卷积(还是复习感觉还行)
算法
黛色正浓14 小时前
leetCode-热题100-贪心合集(JavaScript)
javascript·算法·leetcode
轻微的风格艾丝凡14 小时前
嵌入式定时器计时技巧:用有符号数省略溢出判断的底层逻辑与实践
数据库·算法·dsp开发·嵌入式软件
No0d1es14 小时前
2025年12月 GESP CCF编程能力等级认证C++四级真题
算法·青少年编程·等级考试·gesp·ccf
CodeByV15 小时前
【算法题】快排
算法