【LeetCode】22. 括号生成

1 问题

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

示例 1:

输入:n = 3

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

示例 2:

输入:n = 1

输出:["()"]

2 答案

这题直接不会

官方解利用回溯算法

深度优先遍历

python 复制代码
class Solution:
    def generateParenthesis(self, n: int) -> List[str]:

        res = []
        cur_str = ''

        def dfs(cur_str, left, right):
            if left ==0 and right == 0:
                res.append(cur_str)
                return
            if left > right:
                return
            if left > 0:
                dfs(cur_str+'(', left-1, right)
            if right > 0:
                dfs(cur_str+')', left, right-1)

        dfs(cur_str, n, n)
        return res
相关推荐
吃着火锅x唱着歌7 小时前
LeetCode 503.下一个更大元素II
算法·leetcode·职场和发展
_深海凉_7 小时前
LeetCode热题100-将有序数组转换为二叉搜索树
数据结构·算法·leetcode
KaMeidebaby7 小时前
卡梅德生物技术快报|单克隆抗体人源化 PEG 修饰质控方法体系构建与验证
服务器·前端·数据库·人工智能·算法·百度·新浪微博
不知名的老吴7 小时前
二叉树的遍历算法之先序遍历
算法
liu****7 小时前
第16届国赛蓝桥杯大赛C/C++大学B组
c语言·数据结构·c++·算法·蓝桥杯
SimpleLearingAI7 小时前
大模型推理框架总结解析
算法
Σίσυφος19007 小时前
正则化数据并校准数据
人工智能·算法·机器学习
HZ·湘怡7 小时前
基于动态数组的栈(顺序栈)01
数据结构·算法
Chen_harmony7 小时前
十八、C语言内存函数
c语言·算法
__Coffee__8 小时前
封装矩阵结构体
线性代数·算法·矩阵