美文网首页
22. Generate Parentheses

22. Generate Parentheses

作者: JERORO_ | 来源:发表于2018-06-05 13:53 被阅读0次

    题目描述

    Given n pairs of parentheses, write a function to generate all combinations of well-formed parentheses.

    思路

    用DP,规律:
    第一个括弧包含0个,后面跟n-1个:()(...)...
    第一个括弧包含1个,后面跟n-2个:(())(...)...
    第一个括弧包含2个,后面跟n-3个:((()))(...)...

    具体做法

    1. 新建一个存DP的list of list
    2. 用double for loop循环,对于list中每个child list,都可以存放 新的括号“(” + “x个括号的各种排列” + “)” + “y个括号的各种排列”
        def generateParenthesis(self, n):
            """
            :type n: int
            :rtype: List[str]
            """
            ans = [[] for a in range (n+1)]
            ans[0].append("")
            for i in range (n+1):
                for j in range (i):
                    ans[i] += ["(" + x + ")" + y for x in ans[j] for y in ans[i-j-1]]
            return ans[n]     
    

    相关文章

      网友评论

          本文标题:22. Generate Parentheses

          本文链接:https://www.haomeiwen.com/subject/euvpsftx.html