【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

相关推荐
!停4 分钟前
数据结构算法—归并排序
数据结构·算法
骇客野人4 分钟前
机器学习线性回归算法是入门机器学习理解人工智能模型很好示例
人工智能·算法·机器学习
17(无规则自律)6 分钟前
嵌入式 Linux 启动:设备树的加载、传递和解析全流程分析
linux·stm32·嵌入式硬件·unix
Trouvaille ~11 分钟前
【贪心算法】专题(三):排序、博弈与区间的贪婪法则
c++·算法·leetcode·青少年编程·面试·贪心算法·蓝桥杯
kebidaixu14 分钟前
VS Code安装 Remote - SSH 扩展
linux·服务器·ssh
Sakinol#17 分钟前
Leetcode Hot 100 —— 二叉树 part02
算法·leetcode
N1_WEB22 分钟前
HDU:杭电 2017 复试真题汇总
算法
AI+程序员在路上23 分钟前
瑞芯微 RV1126B ADB 调试命令完全指南
linux·adb
努力学算法的蒟蒻23 分钟前
day111(3.13)——leetcode面试经典150
算法·leetcode·面试
参.商.25 分钟前
【Day37】94.二叉树的中序遍历 递归+迭代遍历
leetcode·golang