括号生成算法
给出 n 代表生成括号的对数,请你写出一个函数,使其能够生成所有可能的并且有效的括号组合
例如,给出 n = 3,生成结果为:
[ "((()))", "(()())", "(())()", "()(())", "()()()" ]
function generateParents(n) { const res = [] function generate(cur, left, right) { if (left === 0 && right === 0) { res.push(cur) return } if (left > right) { return } if (left > 0) { generate(cur + '(', left - 1, right) } if (right > 0) { generate(cur + ')', left, right - 1) } } generate('', n, n) return res } console.log(generateParents(3)) console.log(generateParents(2)) console.log(generateParents(4))
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
上一篇: 电话号码的字母组合
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论