题目
思路
哎,没想到,看别人的思路
请点击
代码
#include<iostream>
#include<vector>
#include<string>
#include<algorithm>
using namespace std;
vector<string> generateParenthesis(int n) {
vector<vector<string> > dp(n+1);
dp[0]={""};
dp[1]={"()"};
for(int i=2;i<=n;i++){
for(int j=0;j<i;j++){
for(string p:dp[j]){
for(string q:dp[i-j-1]){
string str="("+p+")"+q;
dp[i].push_back(str);
}
}
}
}
return dp[n];
}
int main(){
int n;
cin>>n;
vector<string> res=generateParenthesis(n);
for(string s:res){
cout<<s<<" ";
}
return 0;
}