2023每日刷题(七十九)
Leetcode—22.括号生成
算法思想
实现代码
class Solution {
public:
vector<string> generateParenthesis(int n) {
vector<string> ans;
int m = n * 2;
string path(m, 0);
function<void(int, int)> dfs = [&](int i, int open) {
if(i == m) {
ans.emplace_back(path);
return;
}
// 可以填左括号
if(open < n) {
path[i] = '(';
dfs(i + 1, open + 1);
}
// 可以填右括号
if(i - open < open) {
path[i] = ')';
dfs(i + 1, open);
}
};
dfs(0, 0);
return ans;
}
};
运行结果
之后我会持续更新,如果喜欢我的文章,请记得一键三连哦,点赞关注收藏,你的每一个赞每一份关注每一次收藏都将是我前进路上的无限动力 !!!↖(▔▽▔)↗感谢支持!