22.括号生成

class Solution:
    def generateParenthesis(self, n: int) -> List[str]:
        if n == 0 :
            return []
            
        result = []
        # 递归法
        self.helper(n, n, '', result)
        return result
    
    def helper(self, left, right, item, result):
        # 如果 右括号剩余数量 < 左括号剩余数量(右括号剩余的数量肯定大于等于左括号剩余数量)
        if right < left:
            return
        # 如果 左右括号剩余数量=0
        if right ==0 and left ==0:
            result.append(item)
        # 左括号数量 > 0
        if left > 0:
            self.helper(left-1, right, item+'(', result)
        # 右括号数量 > 0
        if right > 0:
            self.helper(left, right-1, item+')', result)

 

 

posted @ 2019-08-20 17:22  我叫郑小白  阅读(139)  评论(0编辑  收藏  举报