leetcode22. 括号生成(回溯)
数字 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. 括号生成(回溯)相关推荐
- leetcode22. 括号生成
给出 n 代表生成括号的对数,请你写出一个函数,使其能够生成所有可能的并且有效的括号组合. 例如,给出 n = 3,生成结果为: [ "((()))", "(() ...
- Leetcode--22. 括号生成
给出 n 代表生成括号的对数,请你写出一个函数,使其能够生成所有可能的并且有效的括号组合. 例如,给出 n = 3,生成结果为: [ "((()))", "(() ...
- LeetCode 22. 括号生成(回溯+剪枝)
题目描述 给出 n 代表生成括号的对数,请你写出一个函数,使其能够生成所有可能的并且有效的括号组合. 思路 详见链接 代码 from typing import List class Solution ...
- Leetcode-笔记-22.括号生成--递归
Leetcode-笔记-22.括号生成 数字 n 代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且 有效的 括号组合. 示例 1: 输入:n = 3 输出:["((()))& ...
- LeetCode 21合并两个有序链表22括号生成
微信搜索bigsai,回复进群,加入打卡.维护不易,欢迎点赞支持! 合并两个有序列表 将两个升序链表合并为一个新的 升序 链表并返回.新链表是通过拼接给定的两个链表的所有节点组成的. 示例: 输入:1 ...
- 牛客题霸 [括号生成] C++题解/答案
牛客题霸 [括号生成] C++题解/答案 题意: 给出n对括号,请编写一个函数来生成所有的由n对括号组成的合法组合. 例如,给出n=3,解集为: "((()))", "( ...
- [Leedcode][JAVA][第22题括号生成][DFS][BFS][动态规划]
[问题描述]22. 括号生成 数字 n 代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且 有效的 括号组合. 示例:输入:n = 3 输出:["((()))",&q ...
- 力扣P22 括号生成的DFS思路
力扣P22 括号生成的DFS思路 题干[括号生成](https://leetcode-cn.com/problems/generate-parentheses/) 思路 题干括号生成 思路 这道题用d ...
- LeetCode Algorithm 22. 括号生成
22. 括号生成 Ideas 这是一道动态规划的题目,关于动态规划的题目我们可以从n比较小的情况下开始逐步分析. 当n=1时,["()"] 当n=2时,["()()&qu ...
最新文章
- 集合,stack,queue,dictionary,ArrayList,listT
- kettle获取当前日期_kettle中通过 时间戳(timestamp)方式 来实现数据库的增量同步操作(一)...
- python float和int的区别_Python四种数值类型(int,long,float,complex)区别及转换
- jdk1.8 base64注意事项
- CentOS7.6下安装Ambari
- 新项目上线后需要注意的事情
- 如何用 JavaScript+Canvas 开发一款超级烧脑小游戏?
- 海量数据中找top K专题
- Impala 源码分析-FE
- Atitit.html解析器的选型 jsoup nsoup ,java c# .net 版本
- java读取文件 classpath_Java读取Classpath文件
- C#使用Windows全局钩子(Winform) SetWindowsHookEx
- 重装系统显示缺少计算机所需的介质驱动程序,安装WIN7提示“缺少所需的CD/DVD驱动器设备驱动程序”的解决办法...
- matlab 鲁棒性分析,电液速度系统的鲁棒性分析及MATLAB计算
- Angular实现微博发布功能
- 基于Huggingface的预训练语言模型分类体系及实战
- Sass学习笔记 — 4. 参考手册
- Unity Shader UV动画之高光材质加上透明材质与UV动画
- python中for in的用法python中for in的用法
- 邮件服务配置(虚拟域虚拟用户)
热门文章
- Redis高频面试笔记:java版本号比较算法
- 计算机网络与网站设计知识点,计算机网络技术知识点总结-20210525075410.docx-原创力文档...
- 21天学通Visual.Basic pdf
- JavaWeb项目前端规范(采用命名空间使js深度解耦合)
- Mysql中natural join和inner join的区别
- FlashFXP使用教程
- 牛刀小试、用SharePoint 实现请假管理功能
- poj 2507Crossed ladders 计算几何
- 《WinForm开发系列之控件篇》Item13 DirectoryEntry(暂无)
- ExtJS中的Grid分页