题目:
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:
"((()))", "(()())", "(())()", "()(())", "()()()"
思路:
1.递归
代码:
class Solution{
public:
vector<string> result;
vector<string> generateParenthesis(int n)
{
string s;
generate(n,n,s);
return result;
}
private:
void generate(int left,int right,string s)
{
if(!left && !right)
result.push_back(s);
if(left)
generate(left-1,right,s+'(');
if(right && right>left)
generate(left,right-1,s+')');
}
};