【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

相关推荐
偶像你挑的噻15 分钟前
16-Linux驱动开发-多核通信中的并发控制
linux·驱动开发·stm32·嵌入式硬件
菜鸟233号21 分钟前
力扣347. 前k个高频元素 java实现
算法
liweiweili1261 小时前
Linux 中查询指定目录下查找包含特定文本的文件
linux·运维·chrome
YFLICKERH1 小时前
【Linux系统】安装包 deb | rpm
linux·运维·安装包
CodeByV1 小时前
【Linux】线程从内核到实战:本质、控制逻辑与封装指南
linux
Xの哲學1 小时前
Linux设备管理:从内核驱动到用户空间的完整架构解析
linux·服务器·算法·架构·边缘计算
xinyu_Jina2 小时前
Info Flow:去中心化数据流、跨协议标准化与信息源权重算法
算法·去中心化·区块链
Jac_kie_層樓2 小时前
力扣hot100刷题记录(12.2)
算法·leetcode·职场和发展
繁华似锦respect2 小时前
C++ unordered_map 底层实现与详细使用指南
linux·开发语言·c++·网络协议·设计模式·哈希算法·散列表
大聪明-PLUS2 小时前
在 C++ 中开发接口类
linux·嵌入式·arm·smarc