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

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

[
  "((()))",
  "(()())",
  "(())()",
  "()(())",
  "()()()"
]

思路:n对括号,n个左括号为left,n个右括号right,当left != 0时,递归left-- path+“(”,当rigth!==&&right>left时,递归right-- path+“)”,直到left==0&&right==0时,将path添加到list中。

也就是说当左括号个数不为0时,可以添加左括号,右括号个数不为0并且大于左括号个数时,添加右括号。

class Solution {
public:vector<string> generateParenthesis(int n) {vector<string> result;DFS(n, n, "", result);return result;}void DFS(int left,int right, string s, vector<string>& result){if(left==0&&right==0){result.push_back(s);return;}if(left!=0){DFS(left-1,right,s+'(',result);}if(right!=0 && right>left){DFS(left,right-1,s+')',result);}}
};

括号生成—leetcode22相关推荐

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

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

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

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

  3. LeetCode Algorithm 22. 括号生成

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

  4. 牛客题霸 [括号生成] C++题解/答案

    牛客题霸 [括号生成] C++题解/答案 题意: 给出n对括号,请编写一个函数来生成所有的由n对括号组成的合法组合. 例如,给出n=3,解集为: "((()))", "( ...

  5. 22. 括号生成 golang 图解

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

  6. [Leedcode][JAVA][第22题括号生成][DFS][BFS][动态规划]

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

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

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

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

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

  9. 力扣P22 括号生成的DFS思路

    力扣P22 括号生成的DFS思路 题干[括号生成](https://leetcode-cn.com/problems/generate-parentheses/) 思路 题干括号生成 思路 这道题用d ...

最新文章

  1. 久等!2020智源大会演讲视频全公开,参与盖楼挑战赢限量徽章
  2. 【金三银四跳槽季】Java工程师的面试之路,需要“解锁”哪些技术盲点?
  3. html+id选择器如何使用方法,id选择器_HTML+CSS前端基础知识教程_腾讯视频
  4. 【译】 WebSocket 协议第六章——发送与接收消息(Sending and Receiving Data)
  5. Android导入第三方静态库.a编译成动态库.so
  6. C语言和设计模式(状态模式)
  7. history。go(-1)
  8. Cesium:向地图中添加线的方法
  9. 《Web漏洞防护》读书笔记——第6章,XXE防护
  10. python项目目录结构
  11. Unity Easy AR
  12. 计算机网络故障提出问题,列控系统及其计算机网络的故障诊断与故障容错研究...
  13. C# WPF MVVM 实战 – 5- 用绑定,通过 VM 设置 View 的控件焦点
  14. 安装、选择-如何制作U盘系统盘以及U盘安装操作系统的方法 -by小雨
  15. 「随笔」我的导师离职了...
  16. zcmu 1919: kirito's 星爆气流斩
  17. CentOS 7 查询CPU、内存、磁盘的使用情况
  18. ubuntu+cuda+theano
  19. 怎么将两个pdf文件合并在一起
  20. linux协议栈 IPv4之发送过程中的分段处理ip_fragment()

热门文章

  1. oracle jdbctype null,Oracle数据库之springboot 项目mybatis plus 设置 jdbcTypeForNull
  2. 4键电子手表说明书_家有破壁机的要收藏,教你4道早餐食谱,细腻香甜,比喝豆浆舒服...
  3. AD 批量修改漫游文件
  4. 06004_Redis的启动、使用和停止
  5. XML4跨浏览器兼容
  6. (FFOS Gecko Gaia) OTA - 转移至System App
  7. PC SERVER 序列号查询
  8. K3删除物料时提示“物料在存货表-物料中....”
  9. C语言API编写窗体界面和按钮
  10. 【数据结构与算法】之深入解析“太平洋大西洋水流问题”的求解思路与算法示例