22. 括号生成

简介: 22. 括号生成

数字 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


相关文章
|
8月前
字符串括号匹配
字符串括号匹配
|
2月前
|
Java
有效的括号
本题要求判断一个仅包含 '(', ')', '{', '}', '[', ']' 的字符串是否为有效字符串。有效条件是:每个左括号必须被相同类型的右括号正确闭合。空字符串视为有效。示例代码通过栈结构实现,遍历字符串中的每个字符,遇到左括号则将对应的右括号压入栈中,遇到右括号时检查栈顶元素是否匹配,最终栈为空则字符串有效。
9 0
|
4月前
|
存储 算法 索引
给定一个只由左括号和右括号的字符串,返回最长的有效括号子串的长度。如何解答呢?
给定一个只由左括号和右括号的字符串,返回最长的有效括号子串的长度。如何解答呢?
|
7月前
20. 有效的括号
20. 有效的括号
|
8月前
22. 括号生成
22. 括号生成
56 4
|
7月前
22.括号生成
22.括号生成
|
8月前
|
C++
去括号问题(C++处理)
去括号问题(C++处理)
112 0
|
程序员
三目运算符的使用
三目运算符的使用
125 1
C#基础④——算数运算符(前加、后加、前减、后减)、关系运算符、逻辑表达式
C#基础④——算数运算符(前加、后加、前减、后减)、关系运算符、逻辑表达式

热门文章

最新文章

下一篇
开通oss服务