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+")");
}
}

最新文章

  1. [LeetCode] Partition List 划分链表
  2. kendoWindow 与 bootbox 冲突,显示层次问题
  3. Java 判断字符串第一位和最后一位,并截取
  4. Qt Designer怎样加入资源文件
  5. JMeter处理jdbc请求后的响应结果
  6. Centos Ping不通外网
  7. chown命令
  8. [Effective JavaScript 笔记]第52条:数组字面量优于数组构造函数
  9. [MaxOSX] 路由操作
  10. 关于json 的那些知识点
  11. boost之bind
  12. Exploit搭建
  13. Linux 下面对物理地址的访问
  14. JM编解码264
  15. .net中不能在DropDownList中选中多个项的解决方法
  16. highcharts dynamic change line color
  17. jxls导出EXCEL模板
  18. SpringBoot集成jsp
  19. 三十三、ajaxFileUpload图片上传
  20. Skynet服务热点火焰图分析

热门文章

  1. java基础篇之HashMap
  2. Java中long和Long的区别
  3. Eclipse下使用Subversion(SVN工具)
  4. Java 计算两个日期相差的天数
  5. Apache logresolve命令
  6. BBS后台发送邮件&amp;修改文章
  7. CSS 中的 px、em、rem 和 vh
  8. try-catch-finally对返回值的影响
  9. javax.servlet.jsp.PageContext cannot be resolved to a type
  10. 打造一套UI与后台并重.net通用权限管理系统