回溯
void gen(vector<string>& ans,int nums,string& str,int& n) {
if (str.size() == 2*n) {
ans.push_back(str);
}
else {
if (nums < n) {
str.push_back('(');
gen(ans, nums + 1, str, n);
str.pop_back();
}
if (2 * nums > str.size()) {
str.push_back(')');
gen(ans, nums, str, n);
str.pop_back();
}
}
}
vector<string> generateParenthesis(int n) {
vector<string> ans;
string str = "";
gen(ans, 0, str, n);
return ans;
}

版权声明:本文为weixin_46477226原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。