LeetCode 22. 括号生成

LeetCode 22. 括号生成

数字 n 代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且 有效的 括号组合。

示例 1:

输入:n = 3

输出:["((()))","(()())","(())()","()(())","()()()"]

示例 2:

输入:n = 1

输出:["()"]

提示:

1 <= n <= 8

回溯

python 复制代码
class Solution:
    def generateParenthesis(self, n: int) -> List[str]:
        res_list = []
        self.backtrack(n, n, res_list, [])
        return res_list
    
    def backtrack(self, left, right, res_list, res):
        if left + right == 0:
            res_list.append("".join(res))
        else:
            if left == right:
                left -= 1
                res.append('(')
                self.backtrack(left, right, res_list, res)
                res.pop()
                left += 1
            else:
                if left > 0:
                    left -= 1
                    res.append('(')
                    self.backtrack(left, right, res_list, res)
                    res.pop()
                    left += 1
                if right > 0:
                    right -= 1
                    res.append(')')
                    self.backtrack(left, right, res_list, res)
                    res.pop()
                    right += 1
相关推荐
天选之女wow1 分钟前
【代码随想录算法训练营——Day52】图论——101.孤岛的总面积、102.沉没孤岛、103.水流问题、104.建造最大岛屿
算法·深度优先·图论
碧海银沙音频科技研究院9 分钟前
i2s封装成自己定义8路音频数据发送方法
arm开发·人工智能·深度学习·算法·音视频
做科研的周师兄12 分钟前
【机器学习入门】9.2:感知机的工作原理 —— 从模型结构到实战分类
人工智能·算法·机器学习·分类·数据挖掘
不去幼儿园40 分钟前
【启发式算法】狼群算法(Wolf Pack Algorithm, WPA)算法详细介绍(Python)
python·算法·启发式算法·任务分配·集群智能
墨染点香1 小时前
LeetCode 刷题【139. 单词拆分】
算法·leetcode·职场和发展
夜晚中的人海3 小时前
【C++】位运算算法习题
开发语言·c++·算法
superior tigre3 小时前
(huawei)5.最长回文子串
c++·算法
OG one.Z4 小时前
08_集成学习
人工智能·算法·机器学习
CoovallyAIHub4 小时前
超越传统3D生成:OccScene实现感知与生成的跨任务共赢
深度学习·算法·计算机视觉
Mr.H01274 小时前
克鲁斯卡尔(Kruskal)算法
数据结构·算法·图论