Skip to content

Latest commit

 

History

History
31 lines (24 loc) · 844 Bytes

22.md

File metadata and controls

31 lines (24 loc) · 844 Bytes

22. Generate Parentheses

给n对括号,生成所有合规的括号的组合

dfs, 优先添加左括号,当剩余的右括号比左括号多时可以添加右括号,left right分别是剩余的左右括号的数量,

class Solution:
    def generateParenthesis(self, n):
        """
        :type n: int
        :rtype: List[str]
        """

        # 5 star, 
        rs = []
        self.helper(n, n, "", rs)
        return rs

    def helper(self, left, right,  path, rs):
        if left == 0 and right == 0:
            rs.append(path)
            return
        if left > 0:
            self.helper(left-1, right, path+"(", rs)
        if right > left:    # 注意这个条件,只有剩余的右括号比左括号多时,才会加右括号
            self.helper(left, right-1, path+")", rs)

todo, go