您当前的位置:首页 > 计算机 > 编程开发 > 数据结构与算法

括号生成算法

时间:12-14来源:作者:点击数:
城东书院 www.cdsy.xyz

给出 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))
城东书院 www.cdsy.xyz
方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
上一篇:全排列算法 下一篇:分饼干算法
推荐内容
相关内容
栏目更新
栏目热门
本栏推荐