递归
class Solution {
public:
void generate(vector<string>& Parens,string Paren,int left,int right,int n)
{
if(left==right&&left==n)
{
Parens.push_back(Paren);
return;
}
if(left<n)
generate(Parens,Paren+'(',left+1,right,n);
if(left>right)
generate(Parens,Paren+')',left,right+1,n);
}
vector<string> generateParenthesis(int n) {
vector<string> Parens;
string Paren="";
generate(Parens,Paren,0,0,n);
return Parens;
}
};
本文介绍了一种使用递归算法生成有效括号序列的方法。通过递归地添加左括号和右括号,并确保在任何时刻左括号的数量都不小于右括号的数量,最终可以得到所有可能的有效括号组合。
294

被折叠的 条评论
为什么被折叠?



