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
相关推荐
司铭鸿1 小时前
Java响应式编程:Project Reactor与WebFlux高并发实践
java·开发语言·算法·职场和发展·生活
Nicholas681 小时前
数据结构与算法(Dart)之HashMap(十八)
算法
千楼2 小时前
LeetCode 3. 无重复字符的最长子串
算法
threejs源码翻译官2 小时前
显微镜图像处理(优化)-图像去噪算法比对
算法
武汉格发Gofartlic5 小时前
如何跟踪FEMFAT许可使用情况
运维·python·算法·信息可视化·数据分析
m0_640743567 小时前
华为OD-2024年E卷-字符串分割[100分] -- python
数据结构·算法·华为od
圣保罗的大教堂11 小时前
leetcode 2566. 替换一个数字后的最大差值 简单
leetcode
剪一朵云爱着11 小时前
力扣面试题 17.05. 字母与数字
算法·leetcode
code喵喵12 小时前
八种数据结构简介
数据结构·算法·推荐算法