LeetCode热题100-括号生成

数字 n 代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且 有效的括号组合。

示例 1:

复制代码
输入:n = 3
输出:["((()))","(()())","(())()","()(())","()()()"]

核心规则

  1. 左括号数量 ≤ n
  2. 右括号数量 不能超过 左括号(避免 )( 非法)
  3. 左右都用完就收集答案
python 复制代码
class Solution:
    def generateParenthesis(self, n: int) -> List[str]:
        res = []

        def dfs(path, left, right):
            if left == n and right == n:
                res.append(path)
                return
            if left < n:
                dfs(path + "(", left + 1, right)
            if right < left:
                dfs(path + ")", left, right + 1)
        
        dfs("", 0, 0)
        return res
相关推荐
Eloudy1 小时前
表面码中的CNOT 门的共轭变换规则
算法·量子计算
人道领域2 小时前
【LeetCode刷题日记】二叉树翻转:递归与迭代全解析
java·算法·leetcode
AI科技星2 小时前
全域数学信息原本72分册(数学物理卷)
人工智能·算法·数学建模·数据挖掘·量子计算
进击的荆棘2 小时前
递归、搜索与回溯——综合(上)
c++·算法·leetcode·深度优先·dfs
平凡但不平庸的码农9 小时前
Go Slice 详解
算法·golang
Jasmine_llq13 小时前
《B3867 [GESP202309 三级] 小杨的储蓄》
算法·循环遍历·数组累加(模拟)·索引定位·顺序输出
啦啦啦_999913 小时前
案例之 逻辑回归_电信用户流失预测
算法·机器学习·逻辑回归
风筝在晴天搁浅13 小时前
快手/字节 CodeTop LeetCode 415.字符串相加
算法·leetcode
DragonnAi14 小时前
猫咪如厕检测与分类识别系统系列【十四】 项目结构重新整理-即将开源完整算法
算法·开源