【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

相关推荐
星火开发设计几秒前
从公式到应用:卷积公式全面解析与实战指南
学习·算法·机器学习·概率论·知识·期末考试·卷积公式
焦糖布丁的午夜2 分钟前
数据库大王mysql---linux
linux·数据库·mysql
学嵌入式的小杨同学7 分钟前
循环队列(顺序存储)完整解析与实现(数据结构专栏版)
c语言·开发语言·数据结构·c++·算法
程序员-King.7 分钟前
day128—二分查找—搜索二维矩阵(LeetCode-74)
leetcode·矩阵·二分查找
shangjian0078 分钟前
AI大模型-机器学习-算法-线性回归-优化方法
人工智能·算法·机器学习
shangjian00712 分钟前
AI大模型-机器学习-算法-逻辑回归
人工智能·算法·机器学习
冰冰菜的扣jio13 分钟前
RocketMQ入门——快速搭建
linux·rocketmq
王锋(oxwangfeng)13 分钟前
车道线拟合算法--自动驾驶
人工智能·算法·自动驾驶
computersciencer14 分钟前
一文快速理解线性回归的过程
算法·机器学习·回归·线性回归
一路向前的月光16 分钟前
在loongArch64--linux 安装全局nvm和nodejs(npm)
linux·运维·npm