[leetcode] Generate Parenthese
2015-03-06 08:54
232 查看
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:
思路: 回溯法题目。需要用left和right记录当前需要多少个左括号和右括号,注意当left > right时,说明右括号多了,不能在增加右括号,如此只能返回,回溯,寻找新的分支点。
For example, given n = 3, a solution set is:
"((()))", "(()())", "(())()", "()(())", "()()()"
思路: 回溯法题目。需要用left和right记录当前需要多少个左括号和右括号,注意当left > right时,说明右括号多了,不能在增加右括号,如此只能返回,回溯,寻找新的分支点。
public class Solution { public void dfs(ArrayList<String> result, String s, int left, int right){ if(left > right || left < 0 || right < 0){ return; } if(left == 0 && right == 0){ result.add(s); return; } dfs(result, s+'(', left - 1, right); dfs(result, s+')', left, right - 1); } public ArrayList<String> generateParenthesis(int n) { ArrayList<String> result = new ArrayList<String>(); if(n == 0) return result; dfs(result, "", n, n); return result; } }
相关文章推荐
- leetcode generate parenthese
- LeetCode 22 Generate Parentheses
- leetcode---generate-parentheses---dfs
- Leetcode 22 - Generate Parentheses
- [LeetCode] Generate Parentheses
- LeetCode--No.22--Generate Parentheses--hold
- leetcode之Generate Parentheses
- leetcode-Generate Parentheses
- leetcode:Generate Parentheses
- LeetCode | #22 Generate Parentheses
- 【leetcode】GenerateParentheses
- Generate Parentheses -- leetcode
- [LeetCode] 22 - Generate Parentheses
- 【LeetCode】Generate Parentheses
- LeetCode | Generate Parentheses(生成括号)
- Leetcode Generate Parentheses 22
- LeetCode Generate Parentheses
- LeetCode_Generate Parentheses
- generateParenthesis——leetcode
- [Java]LeetCode22 Generate Parentheses