class Solution {
public:
void generate(vector<string> &result, string tmp, int left, int right){
if(left == 0 && right == 0) {
//左右括号都用完了就返回
result.push_back(tmp);
return;
}
//每次递归要么放左括号,要么放右括号
if(left > 0){
generate(result, tmp+"(", left-1, right);
}
if(right > left){
//但是右括号是有条件的,有了左括号才能放右括号
generate(result, tmp+")", left, right-1);
}
}
vector<string> generateParenthesis(int n) {
int right = n;
int left = n;
vector<string> result;
string tmp;
generate(result, tmp, right, left);
return result;
}
};
LeetCode刷题_c++版-22括号生成
猜你喜欢
转载自blog.csdn.net/weixin_44343355/article/details/128826163
今日推荐
周排行