class Solution {
public:
/**
*
* @param n int整型
* @return string字符串vector
*/
vector<string> generateParenthesis(int n) {
vector<string> ans;
if(n==0){
return ans;
}
if(n==1){
string str="()";
ans.push_back(str);
return ans;
}
for(int i=n-1;i>=0;i--){
vector<string> strs=generateParenthesis(i);
vector<string> strn=generateParenthesis(n-1-i);
for(int j=0;j<strs.size();j++){
strs[j]="("+strs[j]+")";
for(int k=0;k<strn.size();k++){
ans.push_back(strs[j]+strn[k]);
}
if(strn.size()==0){
ans.push_back(strs[j]);
}
}
if(strs.size()==0){
for(int j=0;j<strn.size();j++){
ans.push_back("()"+strn[j]);
}
}
}
return ans;
}
};