【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

相关推荐
dazzle2 小时前
机器学习算法原理与实践-入门(十一):基于PyTorch的房价预测实战
pytorch·算法·机器学习
hsjcjh9 小时前
Nodemailer使用教程:在Node.js中发送电子邮件
linux·运维·node.js
小月球~9 小时前
天梯赛 · 并查集
数据结构·算法
不怕犯错,就怕不做10 小时前
linux 如何查看自己的帐号密码及samba的帐号和密码
linux·运维·服务器
地下核武10 小时前
Ubuntu 24.04 在线安装 Qt 6.10.2 后 Qt Creator 无法启动问题记录与解决
linux·qt·ubuntu
仍然.10 小时前
算法题目---模拟
java·javascript·算法
张32310 小时前
Linux 启动过程
linux·运维
三万棵雪松10 小时前
【Linux 物联网网关主控系统-Linux主控部分(二)】
linux·嵌入式linux
chinesegf10 小时前
ubuntu建虚拟环境制作docker容器
linux·ubuntu·docker
Stack Overflow?Tan9010 小时前
标注软件labelImg在linux下鼠标滚轮闪退解决办法
linux·labelimg