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; } };