首页 > 编程语言 > 详细

Leetcode练习(Python):回溯算法类:第22题:括号生成:数字 n 代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且 有效的 括号组合。

时间:2020-05-09 10:40:16      阅读:144      评论:0      收藏:0      [点我收藏+]

题目:

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

思路:

使用回溯算法,使用回溯算法的模板可以很快的求解。

程序:

class Solution:
    def generateParenthesis(self, n: int) -> List[str]:
        if n <= 0:
            return []
        if n == 1:
            return ["()"]
        result = []
        def backtrack(Curr, left, right):
            if right == n:   #满足结束条件
                result.append(‘‘.join(Curr))
                return
            if left < n:
                Curr.append("(")  #做出选择
                backtrack(Curr, left + 1, right)  #路径,选择列表
                Curr.pop() #撤销选择
            if right < left:
                Curr.append(")")
                backtrack(Curr, left, right + 1)
                Curr.pop()
        backtrack([], 0, 0)
        return result

Leetcode练习(Python):回溯算法类:第22题:括号生成:数字 n 代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且 有效的 括号组合。

原文:https://www.cnblogs.com/zhuozige/p/12855782.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!