您的位置:首页 > 其它

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;
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  leetcode