LeetCode-python 22.括号生成

题目链接
难度:中等       类型: 回溯


给出 n 代表生成括号的对数,请你写出一个函数,使其能够生成所有可能的并且有效的括号组合。

示例

输入:3
输出:
[
"((()))",
"(()())",
"(())()",
"()(())",
"()()()"
]

解题思路


有n个左括号和n个右括号
用掉一个减一个
有效的括号需保证,剩余的左括号数<=剩余的右括号数,且数量都大于0
若两者数量刚好都等于0,保存当前的括号组合

代码实现

class Solution(object):
    def generateParenthesis(self, n):
        """
        :type n: int
        :rtype: List[str]
        """
        def generator(left, right, s, res):
            if left<0 or right<0 or left>right:
                return
            if left==0 and right==0:
                res.append(s)
                
            generator(left-1, right, s+'(', res)
            generator(left, right-1, s+')', res)
            
        res = []
        generator(n, n, '', res)
        return res

本文链接://www.greatytc.com/p/38c83ba8d79e

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 22.括号生成 给出 n 代表生成括号的对数,请你写出一个函数,使其能够生成所有可能的并且有效的括号组合。 例如,...
    梦vctor阅读 663评论 0 0
  • 官网 中文版本 好的网站 Content-type: text/htmlBASH Section: User ...
    不排版阅读 4,521评论 0 5
  • 题目描述: 给出 n 代表生成括号的对数,请你写出一个函数,使其能够生成所有可能的并且有效的括号组合。 例如,给出...
    LeeYunFeng阅读 1,370评论 0 50
  • 题目 给出 n 代表生成括号的对数,请你写出一个函数,使其能够生成所有可能的并且有效的括号组合。 例如,给出 n ...
    半亩房顶阅读 371评论 0 1
  • 引文:Swift是否和OC一样有runtime机制 纯Swift类没有动态性,但在方法、属性前添加dynamic修...
    iOS倔强青铜阅读 792评论 0 0