美文网首页
22. 括号生成

22. 括号生成

作者: 致Great | 来源:发表于2022-01-08 22:43 被阅读0次

    数字 n 代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且 有效的 括号组合。

    示例 1:

    输入:n = 3
    输出:["((()))","(()())","(())()","()(())","()()()"]
    示例 2:

    输入:n = 1
    输出:["()"]

    class Solution(object):
        def generateParenthesis(self, n):
            res = []
            def backtrack(in_idx, out_idx, tmp_res):
                if out_idx > n or in_idx > n:
                    return
                if len(tmp_res) == 2*n:
                    res.append(tmp_res)
                    return
                if n-in_idx:
                    backtrack(in_idx+1, out_idx, tmp_res+'(')
                if in_idx-out_idx:
                    backtrack(in_idx, out_idx+1, tmp_res+')')
            backtrack(0,0,'')
            return res
    

    相关文章

      网友评论

          本文标题:22. 括号生成

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