Skip to content

22. 括号生成 #39

@Abelonx

Description

@Abelonx

22. 括号生成

中等

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

括号生成,回溯解法
打开思路点,回溯的遍历如何做。使用left right数量指针;什么时候添加左括号,什么时候添加有括号;
遍历循环类似于while True,递归回溯时按照左括号数小于n添加左括号,右括号数小于左括号数添加右括号递归回溯;

class Solution:
    def generateParenthesis(self, n: int) -> List[str]:
        def backtrack(s,left,right):
            if len(s) == 2*n:
                res.append(s)
                return
            if left < n:
                backtrack(s+'(',left+1,right)
            if right < left:
                backtrack(s+')',left,right+1)
        res = []
        backtrack('',0,0)
        return res

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions