思想:
DFS
class Solution {
public:
//Generate Parentheses
void generate(vector<string> &res, string s, int n, int l, int r) {
if(l==n) {
s.append(n-r, ')');//add n ')'
res.push_back(s);
return;
}
generate(res, s+'(', n, l+1, r);
if(l>r) generate(res, s+')', n, l, r+1);
}
vector<string> generateParenthesis(int n) {
vector<string> res;
if(n>0) generate(res, "", n, 0, 0);
return res;
}
};