【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

相关推荐
Lw老王要学习8 分钟前
CentOS 7.9达梦数据库安装全流程解析
linux·运维·数据库·centos·达梦
m0_7369191017 分钟前
C++中的享元模式变体
开发语言·c++·算法
罗湖老棍子23 分钟前
【 例 1】石子合并(信息学奥赛一本通- P1569)
数据结构·算法·区间dp·区间动态规划·分割合并
CRUD酱31 分钟前
CentOS的yum仓库失效问题解决(换镜像源)
linux·运维·服务器·centos
wangluoqi40 分钟前
26.2.4练习总结
算法
流㶡1 小时前
逻辑回归实战:从原理到不平衡数据优化(含欠拟合/过拟合诊断与召回率提升)
算法·机器学习·逻辑回归
Tisfy1 小时前
LeetCode 3637.三段式数组 I:一次遍历(三种实现)
算法·leetcode·题解·模拟·数组·遍历·moines
zly35001 小时前
VMware vCenter Converter Standalone 转换Linux系统,出现两个磁盘的处理
linux·运维·服务器
遨游xyz1 小时前
数据结构-哈希表
算法·哈希算法
Albert Edison1 小时前
【Python】函数
java·linux·python·pip