LEETCODE: Generate Parentheses
2014-12-13 13:04
423 查看
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:
"((()))", "(()())", "(())()", "()(())", "()()()"
没有思路就递归吧,直接在LEETCODE写代码,一次成功。思路,就是当前的位置上,如果还有剩余可放的括号,也只可能有两种情况,'(' 和 ')' 。如果前面的有多余的 '(',我们可以放两种中的任何一种,如果没有,就放')'。然后,递归处理剩余的直到所有的左括号都用完了。
class Solution {
public:
void generating(string pre, int remain, int gapright, vector<string> &results) {
if(remain == 0) {
for(int ii = 0; ii < gapright; ii ++)
pre += ')';
results.push_back(pre);
}
else {
generating(pre + '(', remain - 1, gapright + 1, results);
if(gapright > 0) {
generating(pre + ')', remain, gapright - 1, results);
}
}
}
vector<string> generateParenthesis(int n) {
vector<string> results;
generating("(", n - 1, 1, results);
return results;
}
};
For example, given n = 3, a solution set is:
"((()))", "(()())", "(())()", "()(())", "()()()"
没有思路就递归吧,直接在LEETCODE写代码,一次成功。思路,就是当前的位置上,如果还有剩余可放的括号,也只可能有两种情况,'(' 和 ')' 。如果前面的有多余的 '(',我们可以放两种中的任何一种,如果没有,就放')'。然后,递归处理剩余的直到所有的左括号都用完了。
class Solution {
public:
void generating(string pre, int remain, int gapright, vector<string> &results) {
if(remain == 0) {
for(int ii = 0; ii < gapright; ii ++)
pre += ')';
results.push_back(pre);
}
else {
generating(pre + '(', remain - 1, gapright + 1, results);
if(gapright > 0) {
generating(pre + ')', remain, gapright - 1, results);
}
}
}
vector<string> generateParenthesis(int n) {
vector<string> results;
generating("(", n - 1, 1, results);
return results;
}
};
相关文章推荐
- LeetCode: Generate Parentheses
- [LeetCode] 022. Generate Parentheses (Medium) (C++/Java/Python)
- 【leetcode】Generate Parentheses
- [leetcode] Generate Parentheses
- [LeetCode]022-Generate Parentheses
- 【leetcode】Generate Parentheses
- leetcode之 Generate Parentheses
- [Leetcode] #22 Generate Parentheses
- [Leetcode] Generate Parentheses
- [leetcode javascript解题]Generate Parentheses
- LeetCode Generate Parentheses
- [LeetCode] Generate Parentheses
- leetcode-22 Generate Parentheses
- LeetCode 22 -Generate Parentheses ( JAVA )
- 【leetcode】GenerateParentheses
- leetcode 日经贴,Cpp code -Generate Parentheses
- 【leetcode】Generate Parentheses 算法解析
- [leetcode]Generate Parentheses
- [LeetCode] Generate Parentheses
- Leetcode:Generate Parentheses