Leetcode 22. Generate Parentheses(python)

笨笨的回溯

感觉自己代码很丑。。

class Solution(object):
    def generateParenthesis(self, n):
        """
        :type n: int
        :rtype: List[str]
        """
        res=""
        solution=[]
        self.backtrack(res,solution,n,0,0)
        return solution
        
    def backtrack(self,res,solution,n,l,r):
        if r>l:
            return 
        if len(res)==2*n:
            solution.append(res)
            return
        candidate=[]
        if l<n: candidate.append('(')
        if r<n: candidate.append(')')
        for i in range(len(candidate)):
            res+=candidate[i]
            if candidate[i]=='(':   
                l+=1
                self.backtrack(res,solution,n,l,r)
                res=res[:-1]
                l-=1
            else:   
                r+=1
                self.backtrack(res,solution,n,l,r)
                res=res[:-1]
                r-=1
        

  

 

posted @ 2016-04-06 16:48  colors  阅读(409)  评论(0编辑  收藏  举报