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
  • 相关阅读:
    Axure学习二:基础教程
    Axure 学习一:基础知识详解参考文档
    iOS 加载动态库报错问题
    iOS 9 之 Spotlight框架
    iOS 之 新功能、扩展
    mysql慢查询
    php curl多线程抓取网页
    php读取qqwry.dat ip地址定位文件的类
    php比较加赋值语句
    yaf在windows7下32位的安装教程
  • 原文地址:https://www.cnblogs.com/zhuozige/p/12855782.html
Copyright © 2011-2022 走看看