leetcode - Generate Parentheses
2014-06-17 15:05
295 查看
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:
分析:剪枝法,对左右括号进行计数,右括号的使用量不能大于左括号的数量
void generate(vector<string> &vec, string s,int left, int right)
{
if(right == 0)
{
vec.push_back(s);
return;
}
string s1 = s +'(';
string s2 = s +')';
if(left != 0)generate(vec,s1,left-1,right);
if(right > left)generate(vec,s2,left,right-1);
}
class Solution {
public:
vector<string> generateParenthesis(int n) {
vector<string> vec;
stack<char>stk;
string s;
generate(vec,s,n,n);
return vec;
}
};
For example, given n = 3, a solution set is:
"((()))", "(()())", "(())()", "()(())", "()()()"
分析:剪枝法,对左右括号进行计数,右括号的使用量不能大于左括号的数量
void generate(vector<string> &vec, string s,int left, int right)
{
if(right == 0)
{
vec.push_back(s);
return;
}
string s1 = s +'(';
string s2 = s +')';
if(left != 0)generate(vec,s1,left-1,right);
if(right > left)generate(vec,s2,left,right-1);
}
class Solution {
public:
vector<string> generateParenthesis(int n) {
vector<string> vec;
stack<char>stk;
string s;
generate(vec,s,n,n);
return vec;
}
};
相关文章推荐
- [LeetCode] 022. Generate Parentheses (Medium) (C++/Java/Python)
- 【leetcode】Generate Parentheses
- 【leetcode】Generate Parentheses
- [LeetCode][Java] Generate Parentheses
- leetcode-22 Generate Parentheses
- leetcode-Generate Parentheses
- [leetcode] Generate Parentheses
- [LeetCode] 032: Generate Parentheses
- LeetCode 022 Generate Parentheses
- 【leetcode】GenerateParentheses
- LeetCode 22 Generate Parentheses(生成括号)
- 【Leetcode】之Generate Parentheses
- 【Leetcode】Generate Parentheses in JAVA
- *LeetCode-Generate Parentheses
- [LeetCode]Generate Parentheses
- [leetcode] Generate Parentheses
- [LeetCode]Generate Parentheses
- leetcode 日经贴,Cpp code -Generate Parentheses
- leetcode-22-Generate Parentheses
- [LeetCode]Generate Parentheses