0
点赞
收藏
分享

微信扫一扫

每日一题-括号生成

晚熟的猫 2022-02-03 阅读 213

学习目标:

每日一题-括号生成

学习内容:

数字 n 代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且 有效的 括号组合。
在这里插入图片描述
解法:

class Solution:
    def generateParenthesis(self, n: int) -> List[str]:
        ans = []
        self.generate([],n,ans)
        return ans
    def generate(self,A,n,ans):
        if len(A) == 2*n:
            if self.valid(A):
               ans.append("".join(A))
        else:
            A.append('(')
            self.generate(A,n,ans)
            A.pop()
            A.append(')')
            self.generate(A,n,ans)
            A.pop()
        return

    def valid(self,A):
        bal = 0
        for c in A:
            if c == '(':
               bal+=1
            else:
               bal-=1
            if bal < 0: 
               return False
        return bal == 0

在这里插入图片描述

举报

相关推荐

0 条评论