【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

相关推荐
卡戎-caryon4 分钟前
【C++】15.并发支持库
java·linux·开发语言·c++·多线程
weixin_4342556133 分钟前
命令行快速上传文件到SFTP服务器(附参考示例)
linux·运维·服务器
2301_7944615735 分钟前
力扣-283-移动零
算法·leetcode·职场和发展
编程绿豆侠36 分钟前
力扣HOT100之二叉树:98. 验证二叉搜索树
算法·leetcode·职场和发展
技术流浪者1 小时前
C/C++实践(十)C语言冒泡排序深度解析:发展历史、技术方法与应用场景
c语言·数据结构·c++·算法·排序算法
麟城Lincoln1 小时前
【Linux笔记】nfs网络文件系统与autofs(nfsdata、autofs、autofs.conf、auto.master)
linux·网络·笔记·nfs·autofs
***似水流年***1 小时前
Linux任务管理与守护进程
linux·运维·服务器
I AM_SUN1 小时前
98. 验证二叉搜索树
数据结构·c++·算法·leetcode
python算法(魔法师版)2 小时前
.NET NativeAOT 指南
java·大数据·linux·jvm·.net
学习中的码虫2 小时前
数据结构基础排序算法
数据结构·算法·排序算法