【LeetCode】括号生成

目录


一、题目

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

示例 1:

输入:n = 3

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

示例 2:

输入:n = 1

输出:["()"]

提示:

1 <= n <= 8


二、解法

回溯,优先放置左括号,两个边界条件,一个是正常的,即左右都放完了,还有一个是异常的,也就是左边剩余的比右边多,直接return就好了


完整代码

python 复制代码
class Solution:
    def generateParenthesis(self, n: int) -> List[str]:
        res = []
        path = ''
        def backtrack(left, right, path):
            if left > right:
                return
            if left == right == 0:
                return res.append(path)
            if left:
                backtrack(left - 1, right, path + '(')
            if right:
                backtrack(left, right - 1, path + ')')
        backtrack(n, n, '')
        return res

相关推荐
2501_908329852 分钟前
实时音频处理C++实现
开发语言·c++·算法
dapeng28702 分钟前
移动语义与完美转发详解
开发语言·c++·算法
穷人小水滴3 分钟前
使用 WebRTC 实现局域网投屏: PC (GNOME ArchLinux) -> 平板 (Android)
android·linux·webrtc·浏览器·js·gnome·投屏
恋红尘4 分钟前
K8S 控制器-资源调度-叩丁狼
linux·docker·kubernetes
bbbb3655 分钟前
算法工程中的可扩展性与分布式实现方案的技术7
算法
Shining05965 分钟前
AI 编译器系列(六)《Stable Diffusion 在 InfiniTensor 推理框架中的适配与工程实践》
人工智能·算法·stable diffusion·大模型·图像生成·ai编译器·infinitensor
佩奇大王6 分钟前
P159 摆动序列
java·开发语言·算法
weixin_537590456 分钟前
《C程序设计语言》练习答案(练习1-7)
linux·c语言·算法
!停10 分钟前
C++基础入门(缺省参数,函数重载,引用)
开发语言·c++·算法
我不是秋秋10 分钟前
软件开发项目各角色关系解析:产品/前后端/测试如何高效协作?
java·算法·面试·职场和发展·哈希算法