【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

相关推荐
圣保罗的大教堂3 小时前
leetcode 2540. 最小公共值 简单
leetcode
wljy13 小时前
二、进制状态转换
linux·运维·服务器·c语言·c++
week@eight3 小时前
Linux - Doris
linux·运维·数据库·mysql
云泽8084 小时前
笔试算法 -位运算篇(二):从唯一字符到消失数字
c++·算法·位运算
ʚ希希ɞ ྀ4 小时前
不同路径|| -- dp
算法
平行云4 小时前
实时云渲染预启动技术解析:UE数字孪生应用的延迟优化机制(二)
linux·unity·ue5·webgl·实时云渲染·云桌面·像素流
看到代码头都是大的4 小时前
CentOS环境下手动升级openssl、openssh
linux·运维·centos
浮生若城4 小时前
Linux——Ext系列文件系统
linux·运维·服务器
IT 行者5 小时前
SimHash 与 MinHash:相似性计算的双子星算法
算法·hash·比对
枳实-叶5 小时前
【Linux驱动开发】第16天:按键中断完整实战
linux·运维·驱动开发