【Leetcode】Generate Parentheses (Backtracking)
2014-11-06 04:04
417 查看
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:
这道题的思路是记录左括号和右括号的剩余总数,然后凡是右括号比左括号剩余的少得(用的多的),就不合法,返回
这样当左右剩余括号都为0的时候,就是一组合法的括号序列
代码来自code_ganker
For example, given n = 3, a solution set is:
"((()))", "(()())", "(())()", "()(())", "()()()"
这道题的思路是记录左括号和右括号的剩余总数,然后凡是右括号比左括号剩余的少得(用的多的),就不合法,返回
这样当左右剩余括号都为0的时候,就是一组合法的括号序列
代码来自code_ganker
public ArrayList<String> generateParenthesis(int n) { ArrayList<String> result = new ArrayList<String>(); String item = ""; if (n <= 0) return result; helper(n, n, item, result); return result; } public void helper(int lRemain, int rRemain, String item, ArrayList<String> result) { if (lRemain > rRemain) return; if (lRemain == 0 && rRemain == 0) { result.add(item); return; } if (lRemain > 0) helper(lRemain - 1, rRemain, item + "(", result); if (rRemain > 0) helper(lRemain, rRemain - 1, item + ")", result); }
相关文章推荐
- [LeetCode] Generate Parentheses
- LeetCode: Generate Parentheses
- LeetCode-Generate Parentheses
- Leetcode 22 Generate Parentheses 搜索与DP的纠结
- [Leetcode] generate parentheses 生成括号
- 【Leetcode】之Generate Parentheses
- leetcode之 Generate Parentheses(Catalan数)
- LeetCode 22 Generate Parentheses (C,C++,Java,Python)
- Generate Parentheses (括号匹配)【leetcode】
- [leetcode] 22 Generate Parentheses(递归)
- 【Leetcode】【Medium】Generate Parentheses
- leetcode 51: Generate Parentheses
- LeetCode记录之——Generate Parentheses
- [LeetCode]Generate Parentheses题解
- LeetCode——Generate Parentheses
- LeetCode题解——Generate Parentheses
- Leetcode 22 Generate Parentheses
- [LeetCode] Generate Parentheses
- LeetCode: Generate Parentheses
- LeetCode——Generate Parentheses