[leetcode]Generate Parentheses(java)
2015-07-11 10:11
567 查看
问题描述:
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:
“((()))”, “(()())”, “(())()”, “()(())”, “()()()”
分析:生成全部可行的组合。DFS二叉树。虽然使用了栈的思想,但是并没有显式的使用栈
代码如下:用时228 ms
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:
“((()))”, “(()())”, “(())()”, “()(())”, “()()()”
分析:生成全部可行的组合。DFS二叉树。虽然使用了栈的思想,但是并没有显式的使用栈
代码如下:用时228 ms
[code]public class Solution { private void dfs(ArrayList<String> result,int n,String tmp,int size){//result:存储结果;n:剩余的(个数;tmp存储的临时字符串;size:当前栈中的个数(隐式的栈,而且栈中全是'(') int i; if(n==0){ for(i = 0;i<size;i++) tmp+=")"; result.add(tmp); return; } dfs(result, n-1, tmp+"(", size+1); if(size>0) dfs(result, n, tmp+")", size-1); } public ArrayList<String> generateParenthesis(int n) { ArrayList<String> result = new ArrayList<String>(); if(n<=0) return result; dfs(result, n-1, "(",1); return result; } }
相关文章推荐
- Java互斥锁简单实例
- [LeetOode][Java] Divide Two Integers
- Spring MVC Controller线程问题
- struts工作流程
- Java经典问题:传值与传引用?
- ubuntu下安装jdk
- Java Maven
- Android:复制eclipse下的Android项目,成为一个新项目
- eclipse中项目文件的几种读取图片方法
- java计算时间差
- java Enumeration
- Java并发编程:深入剖析ThreadLocal
- eclipse(myeclipse)插件links方式安装
- myeclipse整合maven
- eclipse中项目文件变更位置后的浏览器读取地址的变化
- Java - 判断元音辅音
- eclipse 启动到loading workbench... 自动关闭
- Java读入int数字利用system.in判别季节小测验
- 从Eclipse迁移到Android Studio
- 关于java多条件查询SQL语句拼接的小技巧