题解 | #括号生成#
括号生成
https://www.nowcoder.com/practice/c9addb265cdf4cdd92c092c655d164ca
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;
}
};
