【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

相关推荐
杜子不疼.1 分钟前
【Linux】进程概念(六):地址空间核心机制
linux·运维·服务器
伯远医学2 分钟前
CUT&RUN
java·服务器·网络·人工智能·python·算法·eclipse
APIshop3 分钟前
1688 拍立淘接口 item_search_img 返回值超细说明
linux·运维·服务器
礼拜天没时间.3 分钟前
《Grafana 企业级可视化监控实战指南:从安装、配置到智能告警》:Grafana 安装部署
linux·运维·信息可视化·zabbix·grafana·监控
丸码5 分钟前
JDK1.8新特性全解析
linux·windows·python
特种加菲猫5 分钟前
解码TCP:如何实现可靠的数据传输
linux·网络·网络协议·tcp/ip
圣保罗的大教堂11 分钟前
leetcode 2872. 可以被 K 整除连通块的最大数目 困难
leetcode
序属秋秋秋12 分钟前
《Linux系统编程之进程环境》【地址空间】
linux·运维·服务器·c语言·c++·系统编程·进程地址空间
铅笔小新z14 分钟前
【C语言—数据结构】8种高效排序算法:从入门到实战
数据结构·算法·排序算法
AKDreamer_HeXY17 分钟前
AtCoder Beginner Contest 434 C-E 题解
c++·算法·前缀和·图论·差分·atcoder