Generate Parentheses Java
来源:互联网 发布:three.js入门指南 pdf 编辑:程序博客网 时间:2024/05/22 13:55
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:
"((()))", "(()())", "(())()", "()(())", "()()()"
NP-probem-> Time O(#ofResult)
Pattern of Catalan number: form a sequence of natural
numbers that occur in various counting problems
Cn= (2n)! / (n+1)!n!
Idea: Loop-Recursion method
3 case
Invalid case: right<left since it is not allowed
Valid Case: recursive add ( bracket when left>0
recursive add ) bracket when right>0
Completed case: left==0 and right==0
public static ArrayList<String> generateParenthesis(int n) { ArrayList<String> res=new ArrayList<String>(); helper(n,n,"",res); return res; } public static void helper(int left, int right, String s, ArrayList<String> res){ //Invalid case that #ofRight should be always less than #ofLeft if(right<left) return; //A completed Parentheses set Generated if(left==0 && right==0){ res.add(s); } //Valid case //recursive adding left and right Parenthesis if(left>0) helper(left-1,right,s+"(",res); if(right>0) helper(left,right-1,s+")",res); }
0 0
- [Leetcode] Generate Parentheses (Java)
- Generate Parentheses Java
- Generate Parentheses (Java)
- [Java]LeetCode22 Generate Parentheses
- [LeetCode][Java] Generate Parentheses
- [leetcode]Generate Parentheses(java)
- LeetCode : Generate Parentheses [java]
- leetcode Generate Parentheses(Java)
- 【Leetcode】Generate Parentheses in JAVA
- LeetCode 22 -Generate Parentheses ( JAVA )
- (Java)LeetCode-22. Generate Parentheses
- leetcode-java-22. Generate Parentheses
- [LeetCode-Java]22. Generate Parentheses
- [leetcode]22. Generate Parentheses(Java)
- Generate Parentheses
- Generate Parentheses
- Generate Parentheses
- Generate Parentheses
- ubuntu下安装Source Insight
- springmvc项目单元测试出现的java.lang.NoClassDefFoundError
- java,synchronized方法
- 绝对值函数abs、fabs等的使用
- SQL Server 2008 备份数据库
- Generate Parentheses Java
- java面试题收集
- 学习Spring必学的Java基础知识(2)----动态代理
- 数据结构常用算法
- U盘安装FreeBSD 10
- 实现J2EE中后台action中控制前台javascript弹出对话框
- 25款最佳响应式前端开发框架
- quick-cocos2d-x游戏开发【10】——触摸捕获事件 cc.NODE_TOUCH_CAPTURE_EVENT
- C++ primer 第五版 中文版 练习 9.43 个人code+github上的代码