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
相关推荐
算AI17 小时前
人工智能+牙科:临床应用中的几个问题
人工智能·算法
hyshhhh19 小时前
【算法岗面试题】深度学习中如何防止过拟合?
网络·人工智能·深度学习·神经网络·算法·计算机视觉
杉之19 小时前
选择排序笔记
java·算法·排序算法
烂蜻蜓20 小时前
C 语言中的递归:概念、应用与实例解析
c语言·数据结构·算法
OYangxf20 小时前
图论----拓扑排序
算法·图论
我要昵称干什么20 小时前
基于S函数的simulink仿真
人工智能·算法
AndrewHZ20 小时前
【图像处理基石】什么是tone mapping?
图像处理·人工智能·算法·计算机视觉·hdr
念九_ysl20 小时前
基数排序算法解析与TypeScript实现
前端·算法·typescript·排序算法
守正出琦20 小时前
日期类的实现
数据结构·c++·算法
ChoSeitaku20 小时前
NO.63十六届蓝桥杯备战|基础算法-⼆分答案|木材加工|砍树|跳石头(C++)
c++·算法·蓝桥杯