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入门
    KMP算法
    spring boot整合Thymeleaf
    thymeleaf公共页面元素抽取
    入门oj 6492: 小B的询问
    入门oj 6451: The XOR Largest Pair之二
    入门oj 5499: 讲话模式
    把Windows CA根证书安装到iPhone
    笔记本电脑键盘状态助手KeyboardState
    开启Windows7多用户远程桌面
  • 原文地址:https://www.cnblogs.com/zhuozige/p/12855782.html
Copyright © 2011-2022 走看看