【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

相关推荐
ZFB00015 分钟前
【麒麟桌面系统】V10-SP1 2503 系统知识——添加用户
linux·运维·kylin
bubiyoushang88819 分钟前
MATLAB实现雷达恒虚警检测
数据结构·算法·matlab
ZFB000121 分钟前
【麒麟桌面系统】V10-SP1 2503 系统知识——进入救援模式
linux·运维·kylin
wu_asia22 分钟前
编程技巧:如何高效输出特定倍数数列
c语言·数据结构·算法
RisunJan24 分钟前
Linux命令-iptables-restore命令(从文件批量恢复 iptables 防火墙规则)
linux·运维·网络
AlenTech31 分钟前
207. 课程表 - 力扣(LeetCode)
算法·leetcode·职场和发展
练习时长一年1 小时前
LeetCode热题100(杨辉三角)
算法·leetcode·职场和发展
lzllzz232 小时前
bellman_ford算法
算法
栈与堆2 小时前
LeetCode 19 - 删除链表的倒数第N个节点
java·开发语言·数据结构·python·算法·leetcode·链表
sunfove2 小时前
麦克斯韦方程组 (Maxwell‘s Equations) 的完整推导
线性代数·算法·矩阵