zoukankan      html  css  js  c++  java
  • 给定一个数字n,生成n对可能的小括号组合

    示例:

    输入:n为3

    输出:[

      "((()))",

      "(()())"

      "(())()",

      "()(())",

      "()()()"

    ]

    Python解决方案:

    class Solution(object):
        def generateParenthesis(self, n):
            """
            :type n: int
            :rtype: List[str]
            """
            if not n:
                return []
            self.out = []
            self.gen(n)
            return self.out
        def gen(self,n,s="",left_use=0,left_remain=0):
            if len(s) == 2*n:
                self.out.append(s)
                return
            else:
                if not left_use:
                    self.gen(n,s+"(",left_use+1,left_remain+1)
                elif left_use < n and left_remain:
                    self.gen(n,s+"(",left_use+1,left_remain+1)
                    self.gen(n,s+")",left_use,left_remain-1)
                elif left_use < n and not left_remain:
                    self.gen(n,s+"(",left_use+1,left_remain+1)
                else:
                    self.gen(n,s+")",left_use,left_remain)
  • 相关阅读:
    jsp
    session
    cookie
    异常
    静态导入 可变参数与collectiions集合工具 集合嵌套
    HashMap和LinkedHashMap
    map集合
    匿名对像,,,内部类
    电脑版校网登录助手
    360舵机与180舵机
  • 原文地址:https://www.cnblogs.com/wenqinchao/p/10616929.html
Copyright © 2011-2022 走看看