26.Generate Parentheses(生产有效括号的种类)
2024-08-24 06:26:51
Level:
Medium
题目描述:
Given n pairs of parentheses, write a function to generate all combinations of well-formed parentheses.
For example, given n = 3, a solution set is:
[
"((()))",
"(()())",
"(())()",
"()(())",
"()()()"
]
思路分析:
用left和right代表左括号和右括号的剩余数,初始值为n,利用回溯的思想解题,当出现left的值大于right的值时,说明串中的右括号多于左括号,()),这种直接错误返回,如果出现left和right都为零则是满足情况的一个串。
代码:
public class Solution{
public List<String>generateParenthesis(int n){
List<String>res=new ArrayList<>();
if(n<=0)
return res;
int left=n;
int right=n;
String str="";
help(left,right,res,str);
return res;
}
public void help(int left,int right,List<String>res,String str){
if(left<0||right<0||right<left)
return;
if(left==0&&right==0){
res.add(str);
return;
}
help(left-1,right,res,str+"(");
help(left,right-1,res,str+")");
}
}
最新文章
- [LeetCode] Partition List 划分链表
- kendoWindow 与 bootbox 冲突,显示层次问题
- Java 判断字符串第一位和最后一位,并截取
- Qt Designer怎样加入资源文件
- JMeter处理jdbc请求后的响应结果
- Centos Ping不通外网
- chown命令
- [Effective JavaScript 笔记]第52条:数组字面量优于数组构造函数
- [MaxOSX] 路由操作
- 关于json 的那些知识点
- boost之bind
- Exploit搭建
- Linux 下面对物理地址的访问
- JM编解码264
- .net中不能在DropDownList中选中多个项的解决方法
- highcharts dynamic change line color
- jxls导出EXCEL模板
- SpringBoot集成jsp
- 三十三、ajaxFileUpload图片上传
- Skynet服务热点火焰图分析