题目链接:https://leetcode.com/problems/generate-parentheses/
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:
[ "((()))", "(()())", "(())()", "()(())", "()()()" ]
class Solution{
public:
vector<string> generateParenthesis(int n)
{
vector<string> result;
combination(result,"",n,n);
return result;
}
void combination(vector<string> &result,string com,int left,int right)
{
if(left>right)
{
return;
}
if(left==0 && right==0)
{
result.push_back(com);
return;
}
if(left>0)
combination(result,com+"(",left-1,right);
if(right>0)
combination(result,com+")",left,right-1);
}
};