class Solution {//括号匹配的问题还有POJ1141,POJ2955
public:
vector<string> generateParenthesis(int n) {
// Note: The Solution object is instantiated only once and is reused by each test case.
vector<string> ans;
gen(n,0,0,"",ans);
return ans;
}
void gen(int n,int lef,int rig,string tmp,vector<string> &ans)//加&可改变实参ans的值
{
if(lef<rig)//左括号的数量应>=右括号的数量
return;
if(lef+rig==2*n)
{
if(lef==rig)
{
ans.push_back(tmp);
}
return;
}
gen(n,lef+1,rig,tmp+"(",ans);
gen(n,lef,rig+1,tmp+")",ans);
}
};
【leetcode】Generate Parentheses
最新推荐文章于 2018-02-24 19:45:54 发布