【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
相关推荐
敲代码的苦1314 小时前
头歌 数据结构—消防资源调度
数据结构·算法
布莱克60514 小时前
C++ 中 set 与 map 的区别详解
开发语言·c++·算法·哈希
lisw0514 小时前
算法与软件的本质区别
驱动开发·算法·数学建模
我不会插花弄玉14 小时前
5.Hash 【由浅入深-redis】
redis·算法·哈希算法
Nuanyt14 小时前
LeetCode Hot 100 · 双指针 3 题 Java
java·笔记·算法·leetcode·双指针
志起计算机编程15 小时前
Clickhouse的几个关键优势
算法
重生之小比特15 小时前
【算法拾光 7】双指针|两数之和 II - 输入有序数组 + 三数之和
算法
文丑颜不良啊15 小时前
LeetCode851~875题目解析
java·leetcode
Navigator_Z16 小时前
LeetCode //C - 1304. Find N Unique Integers Sum up to Zero
c语言·算法·leetcode