括号。设计一种算法,打印n对括号的所有合法的(例如,开闭一一对应)组合。

说明:解集不能包含重复的子集。

例如,给出 n = 3,生成结果为:

[
“((()))”,
“(()())”,
“(())()”,
“()(())”,
“()()()”
]

解题思路:使用递归加回溯,统计出现的不同情况。

class Solution:def __init__(self):self.lists = []def generateParenthesis(self, n: int) -> List[str]:if n==0:  # 如果括号数为0,直接返回空列表return []def generfun(strs,n,num1,num2):# num1是初始左括号,num2是初始右括号if num1 == num2 == n:  # 递归停止条件if strs not in self.lists:self.lists.append(strs[:])returnif num1 < num2: # 左括号少于右括号,直接返回returnif num1<n:  # 当左括号数量小于n,左括号加1,进行递归strs += '('generfun(strs,n,num1+1,num2)strs = strs[:-1] # 回溯if num2<n:  # 当右括号数量小于n,右括号加1,进行递归strs += ')'generfun(strs,n,num1,num2+1)strs = strs[:-1] # 回溯generfun("",n,0,0)return self.lists

面试题 08.09. 括号相关推荐

  1. LeetCode-面试题 08.09. 括号-回溯(生成指定对数的括号)-括号生成-每一个位置有两种可能,一是‘(‘,另外一个是‘)‘

    一.题目 二.思路 1.利用回溯法,即n对括号,有n个'(',有n个')': 2.每个位置可能是'('也可能是')',把每种情况都遍历一遍 3.约束条件: 右括号的个数小于左括号时,这个位置可以是左括 ...

  2. leetcode每日一题--前缀树;前缀哈希;深搜;面试题 08.04. 幂集;648. 单词替换面试题 01.09. 字符串轮转;剑指 Offer II 062. 实现前缀树

    leetcode每日一题 ps:今天的每日一题没意思,简单的模拟,自己换一道 面试题 08.04. 幂集 幂集.编写一种方法,返回某集合的所有子集.集合中不包含重复的元素. 说明:解集不能包含重复的子 ...

  3. leetcode(494/3/53/135/97/72/772/11/301/300/45/517/1643/146/42/407)面试题08.14~剑指offer62

    目录 题目1:给定一个有序数组arr,代表坐落在X轴上的点,给定一个正数K,代表绳子的长度.返回绳子最多压中几个点?即使绳子边缘处盖住点也算盖住. 题目2:一个数组中只有俩个字符'G'和'B',可以让 ...

  4. python【力扣LeetCode算法题库】面试题 08.11- 硬币

    面试题 08.11. 硬币 硬币.给定数量不限的硬币,币值为25分.10分.5分和1分,编写代码计算n分有几种表示法.(结果可能会很大,你需要将结果模上1000000007) 示例1: 输入: n = ...

  5. HighNewTech:2019.08.09程序猿界大事件之【你好,我是鸿蒙OS】~【来了,老弟】—技术才是硬道理,开源方能建立新生态!

    High&NewTech:2019.08.09程序猿界大事件之[你好,我是鸿蒙OS]~[来了,老弟]-技术才是硬道理,开源方能建立新生态! 导读       2019华为开发者大会在今日举行, ...

  6. [Leedcode][JAVA][面试题 08.11][硬币][动态规划]

    [问题描述] 面试题 08.11.硬币 硬币.给定数量不限的硬币,币值为25分.10分.5分和1分,编写代码计算n分有几种表示法.(结果可能会很大,你需要将结果模上1000000007)示例1:输入: ...

  7. 面试题 01.09. 字符串轮转

    面试题 01.09. 字符串轮转 字符串轮转.给定两个字符串s1和s2,请编写代码检查s2是否为s1旋转而成(比如,waterbottle是erbottlewat旋转后的字符串). 示例1: 输入:s ...

  8. LeetCode 面试题 08.01. 三步问题 (动态规划)

    面试题 08.01. 三步问题 解法1(动态规划) 分析出递推式:f(n) = f(n - 1) + f(n - 2) + f(n - 3) class Solution {public int wa ...

  9. 面试题 10.09. 排序矩阵查找

    面试题 10.09. 排序矩阵查找 给定M×N矩阵,每一行.每一列都按升序排列,请编写代码找出某元素.示例:现有矩阵 matrix 如下:[[1, 4, 7, 11, 15],[2, 5, 8, 12 ...

最新文章

  1. python基础30个常用代码大全-Python3列表内置方法大全及示例代码小结
  2. python简单程序代码-有那些用python修改python程序代码的简单方法?
  3. 解决win7系统中安装sql server 2005客户端报错问题
  4. 扎心!“我学了六个月 Python,怎么还是会找不到工作”
  5. 安卓飞机大战(三) 弹出对话框
  6. EasyOffice-.NetCore一行代码导入导出Excel,生成Word
  7. 煮饭的机器人作文_公示|“笔随我心、心由笔动”作文大赛获奖名单
  8. html盒子全部蓝色,彻底弄懂CSS盒子模式之五
  9. 匈牙利命名法为何被淘汰_被称为手表中“蓝血贵族”的百达翡丽,为何会受到如此的追捧?...
  10. Activiti保存.png 流程图片文件且解决idea中保存图片时显示中文乱码的解决方法
  11. Java线程池线程突然没了_70%人答不全!线程池中的一个线程异常了会被怎么处理?...
  12. 在项目中使用HTMLDom的事件冒泡机制
  13. 【图像重建】基于matlab迭代步长自适应图像超分辨重建【含Matlab源码 048期】
  14. HTML里img标签里的alt属性解释
  15. 面试经验之阿里暑期实习
  16. 【清晖诗社】“立秋” 诗意浓,佳作有奖征集ing!
  17. 解决对话框的圆角背景图片黑色部分
  18. mysql中dist_在SQL语句中dist是什么意思
  19. 一个简单的Java Applet应用程序
  20. Audio Codec介绍-6(音频设备的3种硬件接口--PCM,IIS和AC97)

热门文章

  1. S5700日志查看与清空
  2. 分享平时工作中那些给力的shell命令
  3. JavaScript之arguments属性
  4. Enterprise Vault 2007 Series [PST Migration]
  5. HP ILO2和JRE6(java runtime environment)
  6. Hibernate Log4j日志记录
  7. 解决MySQL 8.0 设置简单密码报错ERROR 1819 (HY000): Your password does not satisfy the current policy require...
  8. ASP.NET操作Excel
  9. 【Liunx】manjaro双系统安装(折腾)教程
  10. “Abp.AbpException: Unknown filter name: MayHaveTenant. Be sure this filter is registered before.”的解决