你的位置:首页 > 信息动态 > 新闻中心
信息动态
联系我们

python括号生成(leetcode)

2021-12-5 21:27:16

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

动态规划
代码如下:

class Solution:
    def generateParenthesis(self, n):
        def gen(rightSymbol, leftSymbol, path, res):
            if leftSymbol < rightSymbol or rightSymbol > n or leftSymbol > n:  # 左括号小于右括号,右括号大于n,左括号大于n都不合法
                return
            if leftSymbol == rightSymbol == n:
                res.append(path)
            path += "("
            gen(rightSymbol, leftSymbol + 1, path, res)
            path = path[:-1]
            path += ")"
            gen(rightSymbol + 1, leftSymbol, path, res)
            path = path[:-1]
            return res

        return gen(0, 0, "", [])