class Solution {
public:
vector<string> generateParenthesis(int n) {
int left=0,right=0;
vector<string> ans;
string temp;
generate(ans,temp,left,right,n);
return ans;
}
void generate(vector<string> &ans,string temp,int left,int right,int n)
{
if(left==n&&right==n)
{
ans.push_back(temp);
return ;
}
if(left>right&&left<n)
{
temp +='(';
left++;
generate(ans,temp,left,right,n);
temp.erase(temp.size()-1,1);
left--;
temp +=')';
right++;
generate(ans,temp,left,right,n);
}
else
if(left==right)
{
temp += '(';
left++;
generate(ans,temp,left,right,n);
}
else
if(left>right&&left==n)
{
temp += ')';
right++;
generate(ans, temp, left, right, n);
}
else
if (left < right)
return;
}
};
【回溯】22. Generate Parentheses
最新推荐文章于 2020-09-24 15:49:21 发布