022 Generate Parentheses

022 Generate Parentheses

纯递归解法

class Solution:
    def __init__(self):
        self.ans = []
    
    def generateParenthesis(self, n):
        self.help(n, 0, [], "")
        return self.ans

    def help(self, n, l, tmp, s):
        if l == n:
            if tmp != []:
                tmp.pop()
                self.help(n, l, tmp, s + ")")
            else:
                self.ans.append(s)
        else:
            if tmp == []:
                tmp.append("(")
                self.help(n , l + 1, tmp, s + "(")
            else:
                self.help(n , l + 1, tmp + ["("], s + "(")
                tmp.pop()
                self.help(n, l, tmp, s + ")")

 

posted @ 2015-07-29 14:25  dapanshe  阅读(122)  评论(0编辑  收藏  举报