//括号生成作弊版
class Solution {
public:
vector<string>result;
vector<string> generateParenthesis(int n) {
string tem="";
int lr=0;
int ll=0;
set(tem,ll+1,lr,'(',n*2,1);
return result;
}
void set(string&tem,int ll,int lr,char c,int n,int i){
// cout<<i;
if(i==n&&ll<lr){
return;
}
if(i==n&&ll>lr){
return;
}
if(i==n&&lr==ll){
tem=tem+')';
result.push_back(tem);
return;
}
if(ll<lr){
return;
}
tem=tem+c;
set(tem,ll+1,lr,'(',n,i+1);
set(tem,ll,lr+1,')',n,i+1);
tem=tem.substr(0,i-1);
}
};