• 为了保证你在浏览本网站时有着更好的体验,建议使用类似Chrome、Firefox之类的浏览器~~
    • 如果你喜欢本站的内容何不Ctrl+D收藏一下呢,与大家一起分享各种编程知识~
    • 本网站研究机器学习、计算机视觉、模式识别~当然不局限于此,生命在于折腾,何不年轻时多折腾一下

leetcode-Generate Parentheses

leetcode admin 2年前 (2017-04-16) 1059次浏览 0个评论 扫描二维码

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

For example, given n = 3, a solution set is:

[
  "((()))",
  "(()())",
  "(())()",
  "()(())",
  "()()()"
]
 解题思路
 从左到右生成相应的符号序列,首先添加‘(’,左右括号成对出现且个数一致,右边括号计数大于左边括号时需要添加‘)’,直到计数都为 0 时表示当前生成一个有效的序列,依次递归操作
class Solution(object):
    def generateParenthesis(self, n):
        """
        :type n: int
        :rtype: List[str]
        """
        def gernerate_str(sstr,lnum,rnum,result=[]):
            if lnum==0 and rnum==0:
                result.append(sstr)
                return
            if lnum>0:
                gernerate_str(sstr+'(',lnum-1,rnum,result)
            if rnum>lnum:
                gernerate_str(sstr+')',lnum,rnum-1,result)
        result=[]
        gernerate_str('',n,n,result)
        return result

Deeplearn, 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明leetcode-Generate Parentheses
喜欢 (0)
admin
关于作者:
互联网行业码农一枚/业余铲屎官/数码影音爱好者/二次元

您必须 登录 才能发表评论!