具体思路:
DP
具体代码:
class Solution {
public:
vector<string> generateParenthesis(int n) {
unordered_map<int,vector<string>>ump;
ump[0].push_back("");
ump[1].push_back({"()"});
for(int i=2;i<=n;i++){
fun(ump,i);
}
return ump[n];
}
void fun(unordered_map<int, vector<string>>&ump,int n){
for(int i=0;i<ump[n-1].size();i++){
ump[n].push_back("()"+ump[n-1][i]);
}
for(int l=1;l<n;l++){
for(int i=0;i<ump[l].size();i++){
for(int j=0;j<ump[n-1-l].size();j++){
ump[n].push_back("("+ump[l][i]+")"+ump[n-1-l][j]);
}
}
}
}
};