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
  • 相关阅读:
    小程序开发之初体验
    phantomjs 爬去动态页面
    css实现三角形
    多种方式实现千位分隔符
    基于浏览器的人脸识别标记
    Axios源码阅读笔记#1 默认配置项
    基于图形检测API(shape detection API)的人脸检测
    页面性能优化
    目标
    HelloWorld!
  • 原文地址:https://www.cnblogs.com/zhuozige/p/12855782.html
Copyright © 2011-2022 走看看