文章目录

  • 题目
    • 题目详情
    • 示例
  • 解题思路
    • 思路
    • 代码
    • 运行结果
    • 最佳方案

题目

题目详情

给出 n 代表生成括号的对数,请你写出一个函数,使其能够生成所有可能的并且有效的括号组合。

示例

例如,给出 n = 3,生成结果为:["((()))","(()())","(())()","()(())","()()()"
]

解题思路

思路

  1. 运用回溯法
  2. 回溯法的主要思想是从一条路往前走,能进则进,不能进则退回来,换一条路再试

代码

class Solution(object):def generateParenthesis(self, N):ans = []def backtrack(S = '', left = 0, right = 0):if len(S) == 2 * N:          ans.append(S)            returnif left < N:backtrack(S+'(', left+1, right)if right < left:backtrack(S+')', left, right+1)backtrack()return ansif __name__ == "__main__":obj = Solution()obj.generateParenthesis(3)

运行结果

最佳方案

36ms

class Solution:cache = {1: ['()'], 0: ['']}def generateParenthesis(self, n):ret = []if n in self.cache:return self.cache[n]for i in range(n):inners = self.generateParenthesis(i)outers = self.generateParenthesis(n-i-1)for inner in inners:for outer in outers:ret.append('(' + inner + ')' + outer)return ret

leetcode--括号生成--python相关推荐

  1. 括号生成Python解法

    数字 n 代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且 有效的 括号组合. 有效括号组合需满足:左括号必须以正确的顺序闭合. 例: 输入:n = 3 输出:["((()) ...

  2. LeetCode 21合并两个有序链表22括号生成

    微信搜索bigsai,回复进群,加入打卡.维护不易,欢迎点赞支持! 合并两个有序列表 将两个升序链表合并为一个新的 升序 链表并返回.新链表是通过拼接给定的两个链表的所有节点组成的. 示例: 输入:1 ...

  3. LeetCode Algorithm 22. 括号生成

    22. 括号生成 Ideas 这是一道动态规划的题目,关于动态规划的题目我们可以从n比较小的情况下开始逐步分析. 当n=1时,["()"] 当n=2时,["()()&qu ...

  4. [DFS|剪枝] leetcode 22 括号生成

    [DFS|剪枝] leetcode 22 括号生成 1.题目 题目链接 数字 n 代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且有效的括号组合. 示例: 输入:n = 3 输出:[& ...

  5. LeetCode.M22.括号生成

    LeetCode.M22 题目: 题目大意: ​ 给定一个n,使用n对括号,生成所有合法的括号组合并返回. 数据范围: 如图所示 思路: ​ 使用递归.每层递归考虑是添加一个"(" ...

  6. Leetcode 22. 括号生成(递归+去重)

    22. 括号生成 思路: 递归+map去重: 递归函数声明: vector<string> generateParenthesis(int n); 递归出口: 当n=1时,返回{" ...

  7. Leetcode-笔记-22.括号生成--递归

    Leetcode-笔记-22.括号生成 数字 n 代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且 有效的 括号组合. 示例 1: 输入:n = 3 输出:["((()))& ...

  8. LeetCode刷题Python实录

    使用Python的LeetCode刷题 前言 题目 1408. 数组中的字符串匹配 508. 出现次数最多的子树元素和 1089. 复写零 剑指 Offer 14- I. 剪绳子 1175. 质数排列 ...

  9. 这个VS Code扩展可以自动生成Python文档字符串

    机器之心报道 编辑:魔王 该扩展利用可处理编程语言和自然语言的预训练模型 CodeBERT,实现快速生成 Python 文档字符串的功能. Visual Studio Code(简称 VS Code) ...

  10. 利用CodeBERT,这个VS Code扩展可以自动生成Python文档字符串

    点击上方"AI遇见机器学习",选择"星标"公众号 重磅干货,第一时间送达 来自:机器之心 该扩展利用可处理编程语言和自然语言的预训练模型 CodeBERT,实现 ...

最新文章

  1. 【驱动】GNSS驱动:gpsOneXTRA 援助技术
  2. 洛谷 P1308/暂无题解
  3. php接口数据加密、解密、验证签名【转】
  4. String Modification CodeForces - 1316B(规律)
  5. 依赖: ros-melodic-desktop 但是它将不会被安装_npm系列之依赖管理
  6. Python 对象的初始化函数及调用函数
  7. 计算机桌面上的公文包怎么加密,公文包的用法
  8. PYSQLITE用法初探
  9. 计算机算法设计与分析 旅行售货员问题
  10. 从零开始的网站搭建,服务器与域名管理
  11. 自学微信小程序开发第六天- TODOS案例
  12. 五日均线指标编程案例讲解
  13. 解决:Android中常见的热门标签的流式布局flowlayout不能wrap_content
  14. 修改idea的头部文档注释信息
  15. 计算机硬件故障注入,容错箭载计算机的硬件故障注入方法研究.pdf
  16. 任意多个数字求平均数
  17. “高通”字库芯片的使用方法
  18. 平面几何中的有名定理 PPT
  19. eolinker接口测试平台的安装部署
  20. 诺基亚(NOKIA)手机 功能代码

热门文章

  1. base64格式的图片数据如何转成图片
  2. Console-算法[if,while]-一输入两个正整数m和n,求其最大公约数和最小公倍数
  3. 配置国内 Docker Registry Mirror
  4. 黑色星期五阿里云向海淘输出双11技术
  5. 后台接口向数据库录入汉字时乱码以及自动过滤文字经验总结
  6. ionic + cordova+angularJs 搭建的H5 App完整版总结
  7. jquery源码分析(七)——事件模块 event(二)
  8. 【DAY23】JVM与反射的学习笔记
  9. [BZOJ2796][Poi2012]Fibonacci Representation
  10. 基于Bootstrap里面的Button dropdown打造自定义select