class Solution {
public:
vector<string> generateParenthesis(int n) {
string s;
vector<string> res;
helper(n,n,s,res);
return res;
}
void helper(int left,int right,string s,vector<string>& res){
if(left==0)
{
for(int i=0;i<right;i++)
s+=')';
res.push_back(s);
return;
}
for(int i=1;i<=left;i++)
{
if(i<left)
{
for(int j=1;right-j>=left-i;j++)
{
string temp=s;
for(int m=0;m<i;m++)
temp+='(';
for(int m=0;m<j;m++)
temp+=')';
helper(left-i,right-j,temp,res);
}
}
else
{
for(int j=0;j<left;j++)
s+='(';
for(int j=0;j<right;j++)
s+=')';
res.push_back(s);
}
}
}
};
leetcode 22: Generate Parentheses
最新推荐文章于 2019-08-26 14:13:05 发布