leetcode题解记录-22 括号生成(python3)

251 阅读1分钟

题目

22 括号生成

题目链接

官方题解

解题思路: 回溯法 代码中 m 表示尚未使用的左括号,n表示尚未匹配右括号的左括号

代码记录

class Solution:
    def generateParenthesis(self, n: int) -> List[str]:
        def backprocess(m,n):
            if m==0 and n==0:
                combs.append(''.join(comb))
            else:
                if m>0:
                    comb.append('(')
                    backprocess(m-1,n+1)
                    comb.pop()
                if n>0:
                    comb.append(')')
                    backprocess(m,n-1)
                    comb.pop()
        comb=[]
        combs=[]
        backprocess(n,0)
        return combs