括号。设计一种算法,打印n对括号的所有合法的(例如,开闭一一对应)组合。

说明:解集不能包含重复的子集。

例如,给出 n = 3,生成结果为:

[
"((()))",
"(()())",
"(())()",
"()(())",
"()()()"
]

Python 解答:

class Solution:
    def generateParenthesis(self, n: int) -> List[str]:
        lis = []
        def recu(res, i, j, n):
            if i == n and j == n:
                lis.append(res)
                return
            elif i > n or j > n or j > i:
                return 
            elif i < n or j < n:
                recu(res+')', i, j+1, n)
                recu(res+'(', i+1, j, n)
        recu('', 0, 0, n)
        return lis
最后修改日期: 2021年5月3日

留言

撰写回覆或留言

发布留言必须填写的电子邮件地址不会公开。