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

    题目:

    括号生成:数字 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
  • 相关阅读:
    docker--docker介绍
    docker--虚拟化
    高级运维工程师的打怪升级之路
    mysql常用函数
    CentOS 7 下使用 Firewall
    51nod 1094 和为k的连续区间(map+前缀和)
    51nod 1092 回文字符串(dp)
    51nod 1062 序列中最大的数(打表预处理)
    51nod 1284 2 3 5 7的倍数(容斥原理+反面思考)
    51nod 1347 旋转字符串(思维好题)
  • 原文地址:https://www.cnblogs.com/zhuozige/p/12855782.html
Copyright © 2011-2022 走看看