【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

相关推荐
何朴尧21 小时前
centos/cuos如何开启软件源
linux·运维·centos
budingxiaomoli21 小时前
算法---双指针一
算法
iナナ21 小时前
Java优选算法——位运算
java·数据结构·算法·leetcode
YouEmbedded21 小时前
解码Linux文件IO之标准IO
linux·文件io·系统io
热爱生活的猴子21 小时前
算法279. 完全平方数
算法·深度优先
sali-tec1 天前
C# 基于halcon的视觉工作流-章45-网格面划痕
开发语言·算法·计算机视觉·c#
通信小呆呆1 天前
5G NR 信号检测:从 PSS 相关到 SSB 栅格恢复
算法·5g
撬动未来的支点1 天前
【Linux内核】Linux内核裁剪完全指南:从理论到实战的系统优化
linux
Han.miracle1 天前
数据结构二叉树——层序遍历&& 扩展二叉树的左视图
java·数据结构·算法·leetcode
筱砚.1 天前
【数据结构——最小生成树与Kruskal】
数据结构·算法