【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

相关推荐
汀沿河11 小时前
2 模型预训练、微调、强化学习的格式
人工智能·算法·机器学习
AMoon丶11 小时前
Golang--多种数据结构详解
linux·c语言·开发语言·数据结构·c++·后端·golang
颜酱11 小时前
最小生成树(MST)核心原理 + Kruskal & Prim 算法
javascript·后端·算法
啊哦呃咦唔鱼11 小时前
LeetCode hot100-3 无重复字符的最长子串
算法·leetcode·职场和发展
高旭的旭12 小时前
Ubuntu 无显示器远程桌面完美方案
linux·ubuntu·计算机外设
峥嵘life12 小时前
Android16 【CTS】CtsWindowManagerDeviceAnimations存在fail项
android·linux·学习
phltxy12 小时前
算法刷题|模拟思想高频题全解(Java版)
java·开发语言·算法
宵时待雨12 小时前
C++笔记归纳10:继承
开发语言·数据结构·c++·笔记·算法
VermouthSp12 小时前
上下文切换
linux·rust
田梓燊12 小时前
最长的连续序列到底怎么写
算法·哈希算法·散列表