使用递归的方式来做,当l>0时,可以添加一个左括号,当l<r时,可以添加一个右括号
void generateP(std::vector<std::string> &a,string s,int l,int r){
if(l==0&&r==0)
{
a.push_back(s);
return;
}
if(l>0){
generateP(a,s+'(',l-1,r);
}
if(l<r){
generateP(a,s+')',l,r-1);
}
}
std::vector<std::string> generateParenthesis(int n) {
std::vector<std::string> a;
generateP(a,"",n,n);
return a;
}