class Solution {
public:
vector<string> res;
void dfs(int l,int r,int n,string str)
{
if(r==n&&l==n)//如果左右括号都用完了,说明找到了一个答案
{
res.push_back(str);
return;
}
if(r<n&&r+1<=l)//放一个右括号
dfs(l,r+1,n,str+')');
if(l<n)
dfs(l+1,r,n,str+'(');
}
vector<string> generateParenthesis(int n) {
//2n个位置,枚举每个位置放哪个括号
dfs(0,0,n,"");
return res;
}
};
标签:return,22,int,res,dfs,生成,括号
From: https://www.cnblogs.com/tangxibomb/p/17235277.html