【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

相关推荐
Q741_1475 分钟前
每日一题 力扣 3548. 等和矩阵分割 II 前缀和 哈希表 C++ 题解
算法·leetcode·前缀和·矩阵·力扣·哈希表
木井巳7 分钟前
【递归算法】全排列 Ⅱ
java·算法·leetcode·决策树·深度优先·剪枝
Fcy6488 分钟前
算法竞赛有关数据结构的补充(3)—— 二叉树、堆和哈希表的静态实现(包括红黑树和AVL树动态实现)
数据结构·算法·散列表
代码探秘者8 分钟前
【算法篇】6.分治
java·数据结构·后端·python·算法·排序算法
Trouvaille ~11 分钟前
【项目篇】从零手写高并发服务器(十):性能测试与项目总结
linux·运维·c++·reactor·性能测试·高并发服务器·webbench
TechPioneer_lp11 分钟前
2026微软SDE LeetCode高频题:208道,按频度排序,含备考建议
算法·leetcode·microsoft·leetcode刷题·大厂算法刷题·微软sde·微软笔试题
C++ 老炮儿的技术栈12 分钟前
Tcp客户端报错原因分析
linux·c语言·网络·c++·网络协议·tcp/ip
科德航空的张先生12 分钟前
空管模拟器在塔台指挥训练中的应用与效能分析
人工智能·算法
co_wait13 分钟前
【C语言】Linux系统文件操作函数基本使用
linux·c语言·microsoft
勤劳的进取家16 分钟前
Excel 公式使用手册(精简)
算法·excel