用 JavaScript 平衡 n 个括号的所有方法


问题

我们需要编写一个 JavaScript 函数,该函数需要一个数字 n。我们的函数应返回一个数组,显示平衡 n 个括号的所有方法。

例如,n = 3 时,输出应如下 −

["()()()","(())()","()(())","(()())","((()))"]

示例

以下是代码 −

 现场演示

const res = [];
const buildcombination = (left, right, str) => {
   if (left === 0 && right === 0) {
      res.push(str);
   }
   if (left > 0) {
      buildcombination(left-1, right+1, str+"(");
   }
   if (right > 0) {
      buildcombination(left, right-1, str+")");
   }
}
buildcombination(3, 0, "");
console.log(res);

输出

以下是在控制台中输出的内容 −

[ '((()))', '(()())', '(())()', '()(())', '()()()' ]

更新于: 2021 年 4 月 17 日

129 次浏览

开启 职业生涯

完成课程,获得认证

立即开始
广告