【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

相关推荐
guygg883 分钟前
基于全变差的压缩感知视频图像重构算法
算法·重构·音视频
尋有緣9 分钟前
力扣1327-列出指定时间段内所有的下单产品
leetcode·oracle·数据库开发
VT LI14 分钟前
SDF在实时图形渲染中的核心原理与架构创新
算法·sdf·有号距离场
想七想八不如1140815 分钟前
408操作系统 PV专题
开发语言·算法
天一生水water16 分钟前
储层认知→技术落地→产量优化
人工智能·算法·机器学习
明洞日记19 分钟前
【VTK手册019】 深入理解 vtkProperty:从几何表达到 PBR 物理渲染
c++·图像处理·算法·vtk·图形渲染
Genevieve_xiao30 分钟前
【数据结构与算法】【xjtuse】面向考纲学习(下)
java·数据结构·学习·算法
杨云龙UP31 分钟前
从0到可落地:Oracle RMAN异地NFS备份标准脚本(多实例通用)
linux·运维·数据库·oracle
修炼地32 分钟前
代码随想录算法训练营第二十七天 | 56. 合并区间、738.单调递增的数字、968.监控二叉树
c++·算法
仰泳的熊猫34 分钟前
1031 Hello World for U
数据结构·c++·算法·pat考试