采用回溯法
这个思路比较简单,之前数据结构好像也做过
class Solution {
public:
vector<string> generateParenthesis(int n) {
vector<string> res;
string tmp = "";
generate(res,tmp,n,n);
return res;
}
void generate(vector<string>& res,string tmp,int left,int right)
{
if(left==0&&right==0)
{
res.push_back(tmp);
return ;
}
if(left<0||right<0||left>right)
return;
generate(res,tmp+"(",left-1,right);
generate(res,tmp+")",left,right-1);
}
};