[Leetcode] Generate Parentheses (Java)
2013-12-26 16:13
316 查看
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去做:
1)把"("看成+1,")"看成-1,temp为当前和,则要求temp>=0;
2)num保存当前"("数,不能超过n;
3)length为当前字符串长度。
For example, given n = 3, a solution set is:
"((()))", "(()())", "(())()", "()(())", "()()()"
输出全括号匹配,DFS去做:
1)把"("看成+1,")"看成-1,temp为当前和,则要求temp>=0;
2)num保存当前"("数,不能超过n;
3)length为当前字符串长度。
import java.util.ArrayList; public class GenerateParentheses { public ArrayList<String> generateParenthesis(int n) { ArrayList<String> list = new ArrayList<String>(); dfs(2*n, "",list,0,0); return list; } private void dfs(int length,String s,ArrayList<String> list,int temp,int num) { if(s.length()==length) list.add(s); else { if(num<length/2) dfs(length, s+'(', list, temp+1,num+1); if(temp>0){ dfs(length, s+')', list, temp-1,num); } } } public static void main(String[] args) { int n = 3; System.out.println(new GenerateParentheses().generateParenthesis(n)); } }
相关文章推荐
- LeetCode 22 Generate Parentheses (C,C++,Java,Python)
- LeetCode 22 — Generate Parentheses(C++ Java Python)
- Java [leetcode 22]Generate Parentheses
- Generate Parentheses leetcode java
- [leetcode]Generate Parentheses(java)
- LeetCode 22 -Generate Parentheses ( JAVA )
- 【LeetCode-面试算法经典-Java实现】【022-Generate Parentheses(生成括号)】
- [LeetCode] 022. Generate Parentheses (Medium) (C++/Java/Python)
- 【JAVA、C++】LeetCode 022 Generate Parentheses
- [Java]LeetCode22 Generate Parentheses
- 【Leetcode】Generate Parentheses in JAVA
- [LeetCode][Java] Generate Parentheses
- 【Leetcode】Valid Parentheses in JAVA——一个括号de了20分钟bug的故事
- 【LeetCode】Generate Parentheses
- leetcode_java.T020_ValidParentheses 给定一个只包含(‘, ‘)’, ‘{‘, ‘}’, ‘[’ 和‘]’的字符串,验证它是否是有效的。
- LeetCode 22:Generate Parentheses
- [Leetcode 49] 22 Generate Parentheses
- leetcode:Valid Parentheses 【Java】
- LeetCode "Generate Parentheses"
- 【LeetCode】Generate Parentheses