【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

相关推荐
可编程芯片开发几秒前
基于零极点配置的PID控制系统simulink建模与仿真
算法
Dxy123931021613 分钟前
Linux 编译安装 Python 3.12.10(多版本共存,不破坏系统Python)
linux·运维·python
徐小夕19 分钟前
开源!我用SQLite + DuckDB打造了一款可视化AI问数平台
前端·算法·github
Hrain-AI33 分钟前
2026 企业 AI 智能体平台横评:8 大主流平台 7 维度实测对比
人工智能·算法·机器学习
Angel Q.1 小时前
因子分析和生成模型有什么关系?从“幕后因素”到“生成数据”
算法
xz驱动分享2 小时前
Linux DMA 子系统学习笔记
linux·dma·rk3588·嵌入式软件
w67820073 小时前
Prisma不能优雅的支持DTO,试试Vona ORM吧
linux·运维·ubuntu
FBI HackerHarry浩3 小时前
AI大模型开发V2第四阶段线性回归
人工智能·算法·线性回归
Darkwanderor3 小时前
Linux系统编程实战项目:模拟实现shell
linux·c++