【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

相关推荐
学习编程的gas几秒前
数据结构——堆的实现和堆排序
数据结构·算法
claude617 分钟前
实测文心4.5与X1一个月后,我预测文心大模型4.5 Turbo将有这几个升级点
算法
jz_ddk27 分钟前
[实战]多天线空域抗干扰技术:原理、数学推导与工程仿真(完整仿真代码)
python·算法·毕业设计·信号处理
limnade36 分钟前
将已有 SVN 服务打包成 Docker 镜像的详细步骤
linux·运维·docker
lvchaoq1 小时前
图解力扣回溯及剪枝问题的模板应用
leetcode·深度优先·剪枝·回溯·递归
dog shit1 小时前
蓝桥杯第十一届省赛C++B组真题解析
算法
Swift社区1 小时前
LeetCode 252 会议室题全解析:Swift 实现 + 场景还原
算法·leetcode·swift
要下雨了吗1 小时前
指针数组 vs 数组指针
c语言·数据结构·c++·算法·visual studio
emmmmXxxy2 小时前
leetcode刷题-单调栈
算法·leetcode·职场和发展
kfepiza2 小时前
`use_tempaddr` 和 `temp_valid_lft ` 和 `temp_prefered_lft ` 笔记250405
linux·网络·笔记·tcp/ip·ip·tcp