LeetCode热题Hot100 - 括号生成

一刷~

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

思路:

递归,考虑手动生成有效括号的逻辑。记录当前可能组合中左括号的个数left和剩余可用括号对数n,1.当left不为0时,加一个右括号,n不变,继续下一个 递归;2.当n不为0时,为当前可能组合加一个左括号,left+1, n-1,继续下一个递归;3.当n=0时,考虑left是否为0,不为0,则在当前可能组合右侧加上left个左括号。

改变递归调用方式,可能更优雅- -

python 复制代码
class Solution:
    def generateParenthesis(self, n: int) -> List[str]:
        res = []
        self.generate(res, '', 0, n)
        return res
    
    def generate(self, res, s, left, n):
        if n == 0:
            if left:
                while left:
                    s += ')'
                    left -= 1
            res.append(s)
            return
        
        if left:
            self.generate(res, s+')', left-1, n)
        self.generate(res, s+'(', left+1, n-1)
相关推荐
小O的算法实验室15 小时前
2026年IEEE TNSE SCI2区,基于预测的双阶段分布式任务分配方法+搜救场景中最大化任务分配,深度解析+性能实测
算法·论文复现·智能算法·智能算法改进
月流霜15 小时前
Midjourney 零基础控图七大参数
人工智能·算法·midjourney
luckycoding15 小时前
1487. 保证文件名唯一
数据结构·算法·leetcode
DeeGLMath15 小时前
从基础算法到机器学习的研究轨迹
人工智能·算法·机器学习
Barkamin15 小时前
冒泡排序的简单实现
java·算法·排序算法
_dindong15 小时前
【单调栈/队列&并查集&字符串哈希&Tire树】习题集锦
数据结构·c++·算法·哈希算法
独自破碎E15 小时前
【手撕真题】合并区间
算法
big_rabbit050215 小时前
[算法][力扣110]平衡二叉树
数据结构·算法·leetcode
二年级程序员16 小时前
排序(五)“计数排序” 与 “各排序实际用时测量”
c语言·算法·排序算法
松☆16 小时前
C++ 程序设计基础:从 Hello World 到数据类型与 I/O 流的深度解析
c++·算法