【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

相关推荐
Xの哲學几秒前
深入剖析Linux文件系统数据结构实现机制
linux·运维·网络·数据结构·算法
深圳市恒讯科技2 分钟前
Linux 文件权限指南:chmod 755、644、drwxr-xr-x 解析
linux·服务器·xr
朝阳58111 分钟前
Ubuntu 22.04 安装 Fcitx5 中文输入法完整指南
linux·运维·ubuntu
xingzhemengyou114 分钟前
Linux taskset指令设置或查看进程的 CPU 亲和性
linux·服务器
开开心心就好14 分钟前
图片格式转换工具,右键菜单一键转换简化
linux·运维·服务器·python·django·pdf·1024程序员节
AlenTech16 分钟前
200. 岛屿数量 - 力扣(LeetCode)
算法·leetcode·职场和发展
永远在Debug的小殿下17 分钟前
wsl安装Ubuntu and ROS2
linux·运维·ubuntu
C雨后彩虹25 分钟前
竖直四子棋
java·数据结构·算法·华为·面试
chenmingfa11041 分钟前
yum安装软件报错:Could not retrieve mirrorlist http://mirrorlist.centos.org/?relea
linux·centos
dnpao1 小时前
linux onlyoffice服务向docker容器中添加中文字体
linux·运维·docker