Leetcode-笔记-22.括号生成

数字 n 代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且 有效的 括号组合。

示例 1:
输入:n = 3
输出:["((()))","(()())","(())()","()(())","()()()"]示例 2:
输入:n = 1
输出:["()"]提示:1 <= n <= 8

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/generate-parentheses

由题意得,有一个左括号必定有一个右括号与之对应,假设左括号剩余left个右括号剩余right个,当left==right时下一次必定放置左括号,因为放置右括号将会不匹配。当left<right时放置左右括号都可以。然后采用递归,因为这样放置不会出现left>right的情况,当然这种情况也是错误的。

几点注意需要说,添加括号后,要在回溯后删除。否则改变了字符串s的值,影响下面的递归。

class Solution {public:void generateParenthes(vector<string>& s_v,string&s,int left,int right){if(left==0&&right==0){s_v.push_back(s);return;}if(left==right){s.push_back('(');generateParenthes(s_v,s,left-1,right);s.pop_back();//一定要删除}else{if(left>0){s.push_back('(');generateParenthes(s_v,s,left-1,right);s.pop_back();}s.push_back(')');generateParenthes(s_v,s,left,right-1);s.pop_back();}}vector<string> generateParenthesis(int n) {vector<string> s_vector;string s;generateParenthes(s_vector,s,n,n);return s_vector;}
};

Leetcode-笔记-22.括号生成--递归相关推荐

  1. LeetCode Algorithm 22. 括号生成

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

  2. 【力扣LeetCode】22 括号生成

    题目描述(难度中) 给出 n 代表生成括号的对数,请你写出一个函数,使其能够生成所有可能的并且有效的括号组合. 例如,给出 n = 3,生成结果为: [ "((()))", &qu ...

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

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

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

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

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

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

  6. 22. 括号生成 golang 图解

    题目 括号生成 给出 n 代表生成括号的对数,请你写出一个函数,使其能够生成所有可能的并且有效的括号组合. 例如,给出 n = 3,生成结果为: [ "((()))", " ...

  7. 【LeetCode笔记】22.括号生成(Java、DFS回溯、剪枝、括号)

    文章目录 题目描述 代码 & 解法 题目描述 先吐槽:括号题好恶心.. 括号有效判断需要考虑考虑 代码 & 解法 思路:把括号分开看,这道题和20.有效的括号其实是有差别的:这道题的括 ...

  8. leetcode 22. 括号生成

    难度:中等 频次:62 题目: 数字 n 代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且 有效的 括号组合. 解题思路:DFS DFS注意 构造一棵树,只要遍历就行了 递归结束条件是 ...

  9. LeetCode 22. 括号生成(Generate Parentheses)

    题目描述 给出 n 代表生成括号的对数,请你写出一个函数,使其能够生成所有可能的并且有效的括号组合. 例如,给出 n =3,生成结果为: ["((()))","(()() ...

最新文章

  1. Java IO: 管道
  2. PHP 捕获全局异常
  3. Attempted relative import in non-package
  4. python开发工具排名-Python程序员必备的四款开发工具
  5. Android性能优化——内存泄漏优化
  6. 高级数据结构与算法 | LFU缓存机制(Least Frequently Used)
  7. 我的邮局系统,欢迎大家注册!hotxf.com
  8. 1185. 一周中的第几天 golang
  9. 音视频开发(22)---基于RTMP推送实时AAC+H264流(三)
  10. 京东方OLED屏幕无缘iPhone 12首批供货,因测试未通过
  11. SaCa DataViz 企业版 | 高性能大数据分析引擎
  12. linux 下搭建自己的 git 服务器以及配置多用户
  13. java收_收java的小程序……谢谢
  14. 塔科夫服务器修改器,逃离塔科夫修改器+15项
  15. Airtest网易自动化测试工具
  16. 图像信息隐藏(索引图象)
  17. R语言相关性分析及步骤
  18. DDN4.9实践 - Source版的安装
  19. 校友会小程序开发笔记六:校友活动聚会功能模块设计与实现
  20. C++(STL)学习笔记

热门文章

  1. Google Chrome 超详细使用教程
  2. Cell子刊:粘上你-细菌生长素介导的植物根部细菌定殖
  3. 土壤微生态文献包免费领取 | 150篇近两年高影响因子土壤微生态相关文章
  4. 还找不到想要的文章吗?公众号搜索方法大全
  5. SBB:不同植被土壤中细菌古菌的群落分布模式比较
  6. seaborn使用displot函数实现多面板直方图(Multi-panel)可视化:使用set_title函数自定义设置多面板直方图标题(Multi-panel histograms’ title)
  7. UserWarning: Label not :NUMBER: is present in all training examples
  8. R使用热力图(heatmap)可视化数据集
  9. python代码统计字符串中大写字符、小写字符、特殊字符以及数值字符出现的次数
  10. 梯度消失、梯度爆炸、过拟合问题之神经网络应对方案:数据预处理、批量归一化、非饱和激活函数、梯度缩放和梯度裁剪、权重初始化、提前终止、集成学习、l1l2、Dropout