*LeetCode-Generate Parentheses
2015-09-18 06:53
567 查看
想到了要用recursive 但是没有想清楚helper function要怎样传参
思想就是 记录还有几个left可以用 几个left需要闭合
并且要把list 和整个string传下去 不是每层都add到list 而是这个string结束 即没有可用的left 没有需要闭合的left的时候
public class Solution {
public List<String> generateParenthesis(int n) {
List<String> list = new ArrayList<String>();
add( list, "", n, 0);
return list;
}
void add ( List<String> list, String str, int left, int right ){
if ( left == 0 && right == 0) {
list.add(str);
str = "";
}
if ( left > 0)
add ( list, str + '(', left -1, right + 1);
if ( right > 0 )
add ( list, str + ')', left, right - 1);
}
}
思想就是 记录还有几个left可以用 几个left需要闭合
并且要把list 和整个string传下去 不是每层都add到list 而是这个string结束 即没有可用的left 没有需要闭合的left的时候
public class Solution {
public List<String> generateParenthesis(int n) {
List<String> list = new ArrayList<String>();
add( list, "", n, 0);
return list;
}
void add ( List<String> list, String str, int left, int right ){
if ( left == 0 && right == 0) {
list.add(str);
str = "";
}
if ( left > 0)
add ( list, str + '(', left -1, right + 1);
if ( right > 0 )
add ( list, str + ')', left, right - 1);
}
}
相关文章推荐
- 【ShaderToy】基础篇之再谈抗锯齿(antialiasing,AA)
- 【ShaderToy】开篇
- 【Linux探索之旅】第三部分第四课:后台运行及合并多个终端
- 【ShaderToy】基础篇之谈谈点、线的绘制
- ShaderToy Seascape
- 为何中国GNU/Linux的话语权掌控在外籍人士手中?
- centos 7安装mysql5.5的方法
- C++程序与非C++程序的链接
- rsync详解
- CentOS 7中安装mysql server的步骤分享
- 你应该知道的浮点数基础知识
- Android Api Demos登顶之路(七十二)Graphics-->Color Filters
- [LeetCode] Shortest Palindrome 最短回文串
- mysql ERROR 1044 (42000): Access denied for user ''@'localhost' to database
- 【Linux探索之旅】第三部分第四课:后台运行及合并多个终端
- IOS动画中的枚举UIViewAnimationOptions
- 数据加密是新形势下信息安全措施的必然选项
- 揭秘知名网站如何收集个人数据及应对措施
- AMBA
- POJ 2362 解题报告