22. 括号生成

思路:

递归+map去重:

递归函数声明:

vector<string> generateParenthesis(int n);

递归出口:

当n=1时,返回{“()”}

递归体: 

递归求n-1时的结果

由左右括号配对可知每一个结果字符串的长度都为2*(n-1)

在每一个结果的每一个位置+“()”,再经map去重就是n时的结果

class Solution {
public:vector<string> generateParenthesis(int n) {
unordered_map<string,int>map;
vector<string>res;
if(n==1)
{
return {"()"};}
vector<string>vec=generateParenthesis(n-1);string temp;for(auto&s:vec)
{for(int i=0;i<2*(n-1);i++)
//字符串的连接{ temp=s.substr(0,i)+"()"+s.substr(i,2*(n-1));if(map.find(temp)==map.end()){map[temp]=1;res.push_back(temp);}}
}return res;}
};

Leetcode 22. 括号生成(递归+去重)相关推荐

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

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

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

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

  3. leetcode 22. 括号生成

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

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

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

  5. LeetCode 22. 括号生成(回溯/DP)

    文章目录 1. 题目 2. 解题 2.1 暴力回溯 2.2 DP 1. 题目 给出 n 代表生成括号的对数,请你写出一个函数,使其能够生成所有可能的并且有效的括号组合. 例如,给出 n = 3,生成结 ...

  6. leetcode - 22. 括号生成

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

  7. Leetcode 22.括号生成 (每日一题 20210623)

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

  8. LeetCode 22. 括号生成(回溯+剪枝)

    题目描述 给出 n 代表生成括号的对数,请你写出一个函数,使其能够生成所有可能的并且有效的括号组合. 思路 详见链接 代码 from typing import List class Solution ...

  9. leetcode 22.括号生成

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

最新文章

  1. 自定义Spark Partitioner提升es-hadoop Bulk效率
  2. phpstorm 使用技巧
  3. MHA高可用主从复制实现
  4. java动态字段排序_JAVA 列表动态增加字段显示和任意字段排序
  5. 模型算法-支持向量机SVM
  6. 1.16 static关键字(静态变量和静态方法)
  7. 百度广告点击软件_结束了,百度 “毒瘤” 广告!
  8. 在使用win 7 无线承载网络时,启动该服务时,有时会提示:组或资源的状态不是执行请求操作的正确状态。 网上有文章指出,解决这个问题的方法是在设备管理器中启动“Microsoft托管网络虚拟适配
  9. 动态度量 linux,动态可信度量.ppt
  10. ts语音自建服务器,自建TeamSpeak语音服务器,免费提供给专注游戏的玩家使用!...
  11. 程序包androidx.support.annotation不存在/import androidx.v7.app.AppCompatActivity;报错
  12. get/post在线接口
  13. 机器视觉编码技术与标准进展
  14. 《Thinking in java》-学习笔记(9)
  15. 华为与Emulex、Oracle合作发布数据完整性解决方案
  16. Win7任务管理器找不到进程怎么办
  17. 亚马逊美国UL 299,第 11 版,2012 年 4 月 13 日- UL 安全干粉灭火器标准
  18. 台式电脑接路由器步骤_台式电脑连接网络步骤
  19. ps的切片用来转换html,Photoshop切片导出HTML+CSS
  20. staf linux运行模式,【转】windows和linux下安装STAF

热门文章

  1. 对我来说,只有一件事情是重要的
  2. 一道微软面试题的Java解法
  3. 很久的东西-也有价值
  4. ubuntu 分屏工具
  5. E: Could not get lock /var/lib/dpkg/lock(无法获得锁)
  6. 数学公式的规约(reduce)和简化(simplify)
  7. 工具的使用 —— 搜狗输入法(二)
  8. 机器学习算法的调试 —— 梯度检验(Gradient Checking)
  9. 辨异 —— Python 的深拷贝与浅拷贝
  10. 二项分布的实现(np.random.binomial)