【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

相关推荐
code_pgf9 分钟前
Octo 算法详解-开源通用机器人策略模型技术报告
算法·机器人·开源
嘻嘻哈哈樱桃20 分钟前
牛客经典101题题解集--动态规划
java·数据结构·python·算法·职场和发展·动态规划
小龙在慢慢变强..26 分钟前
目录结构(FHS 标准)
linux·运维·服务器
2035去旅行28 分钟前
嵌入式开发,如何选择C标准库
linux·arm开发
刘延林.29 分钟前
win11系统下通过 WSL2 安装Ubuntu 24.04 使用RTX 5080 GPU
linux·运维·ubuntu
脱氧核糖核酸__36 分钟前
LeetCode热题100——234.回文链表(两种解法)
c++·算法·leetcode·链表
IronMurphy36 分钟前
【算法四十二】118. 杨辉三角 198. 打家劫舍
算法
电科一班林耿超41 分钟前
第 16 课:动态规划专题(二)—— 子序列与子数组问题:面试最高频的 DP 题型
数据结构·算法·动态规划
生信研究猿1 小时前
leetcode 416. 分割等和子集
算法·leetcode·职场和发展
狗哥哥1 小时前
面包屑自动推导的算法设计:从“最短路径匹配”到工程可落地
算法·架构