Leecode22 括号生成
通过代码
class Solution {
public:
vector<string> lst;
vector<string> generateParenthesis(int n) {
Parnethesis("",n,0,0);
return lst;
}
void Parnethesis(string s,int n,int left,int right){
//如果左括号和右括号数量都为n,则输出字符串s到lst
if (left==n&&right==n){
lst.push_back(s);
}
//如果左括号或右括号数量超出n,或左括号数量少于右括号,则排除此种情况
if (left>n||right>n||left<right) return;
//加左括号
Parnethesis(s+'(',n,left+1,right);
//加右括号
Parnethesis(s+')',n,left,right+1);
}
};
代码笔记
- 关于递归的一些尝试