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

示例:

输入:n = 3
输出:[
“((()))”,
“(()())”,
“(())()”,
“()(())”,
“()()()”
]

代码

class Solution {ArrayList<String> strings=new ArrayList<>();public List<String> generateParenthesis(int n) {generatePa(n,0,0,new StringBuilder());return strings;}public void generatePa(int n,int left,int right,StringBuilder stringBuilder) {if(left==n&&right==n) {//匹配完成strings.add(stringBuilder.toString());return;} if(right+1<=left)//有足够的(匹配{stringBuilder.append(')');generatePa(n,left,right+1,stringBuilder);stringBuilder.deleteCharAt(stringBuilder.length()-1);//回溯}if(left+1<=n)//有足够的(可以用{stringBuilder.append('(');generatePa(n,left+1,right,stringBuilder);stringBuilder.deleteCharAt(stringBuilder.length()-1);}}
}

leetcode22. 括号生成(回溯)相关推荐

  1. leetcode22. 括号生成

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

  2. Leetcode--22. 括号生成

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

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

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

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

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

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

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

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

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

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

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

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

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

  9. LeetCode Algorithm 22. 括号生成

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

最新文章

  1. 集合,stack,queue,dictionary,ArrayList,listT
  2. kettle获取当前日期_kettle中通过 时间戳(timestamp)方式 来实现数据库的增量同步操作(一)...
  3. python float和int的区别_Python四种数值类型(int,long,float,complex)区别及转换
  4. jdk1.8 base64注意事项
  5. CentOS7.6下安装Ambari
  6. 新项目上线后需要注意的事情
  7. 如何用 JavaScript+Canvas 开发一款超级烧脑小游戏?
  8. 海量数据中找top K专题
  9. Impala 源码分析-FE
  10. Atitit.html解析器的选型 jsoup nsoup ,java c# .net 版本
  11. java读取文件 classpath_Java读取Classpath文件
  12. C#使用Windows全局钩子(Winform) SetWindowsHookEx
  13. 重装系统显示缺少计算机所需的介质驱动程序,安装WIN7提示“缺少所需的CD/DVD驱动器设备驱动程序”的解决办法...
  14. matlab 鲁棒性分析,电液速度系统的鲁棒性分析及MATLAB计算
  15. Angular实现微博发布功能
  16. 基于Huggingface的预训练语言模型分类体系及实战
  17. Sass学习笔记 — 4. 参考手册
  18. Unity Shader UV动画之高光材质加上透明材质与UV动画
  19. python中for in的用法python中for in的用法
  20. 邮件服务配置(虚拟域虚拟用户)

热门文章

  1. Redis高频面试笔记:java版本号比较算法
  2. 计算机网络与网站设计知识点,计算机网络技术知识点总结-20210525075410.docx-原创力文档...
  3. 21天学通Visual.Basic pdf
  4. JavaWeb项目前端规范(采用命名空间使js深度解耦合)
  5. Mysql中natural join和inner join的区别
  6. FlashFXP使用教程
  7. 牛刀小试、用SharePoint 实现请假管理功能
  8. poj 2507Crossed ladders 计算几何
  9. 《WinForm开发系列之控件篇》Item13 DirectoryEntry(暂无)
  10. ExtJS中的Grid分页