Javascript 平衡括号。确定必须插入的最小字符数

Javascript 平衡括号。确定必须插入的最小字符数,javascript,algorithm,Javascript,Algorithm,我知道这个问题在这里已经存在了 但由于我没有足够的声誉,我不能发表评论,我想知道我的解决方案有什么问题 几天前我被分配了这个任务,我的解决方案给出了正确的输出,除了一个输入 给定一个由左括号和右括号组成的字符串,“('和')”,根据需要插入括号以平衡括号。确定必须插入的最小字符数 以下是我的解决方案: function balanceParentheses(s) { let result = 0 for (let i = 0; i < s.length; i++) {

我知道这个问题在这里已经存在了 但由于我没有足够的声誉,我不能发表评论,我想知道我的解决方案有什么问题

几天前我被分配了这个任务,我的解决方案给出了正确的输出,除了一个输入

给定一个由左括号和右括号组成的字符串,“('和')”,根据需要插入括号以平衡括号。确定必须插入的最小字符数

以下是我的解决方案:

function balanceParentheses(s) {

  let result = 0

  for (let i = 0; i < s.length; i++) {
    s[i] === "(" ? result++ : result--
  }

  return result < 0 ? result * -1 : result
}
我的函数返回24,但他们期望输出26。 我的逻辑怎么了?我不明白这个问题吗?当我数它们时,我还发现缺少24个括号。

函数平衡括号{
设右=0
设左=0
for(设i=0;i0,则为else{
--对
}否则{
++左
}
}
左+右返回
}

console.log(balance圆括号(‘(()))())(‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘’末尾缺少26个括号-25 x”(“和1 x”)”

让s='(())())(()(()(()())()()()()();
设b=0;
让输出=”;
设sArray=s.split(“”);
设加法=0;
for(设i=0;i日志(输出,“添加:”+(添加+b))您正在忽略此项”)(“这个解决方案中的条件。像这样的任务让我觉得我不适合程序员。我仍然不明白。右括号是32,右括号是8。要通过插入使它们平衡,我在8上加了24,瞧,它们都是32。这对我来说是平衡的。平衡括号与确保打开a的数量不同nd结束括号是相同的。后者可能是真的,前者可能是假的,如@sveyda所示是一个不平衡的括号序列,有一个开括号和一个闭括号。回答您的问题,是的,您没有正确理解问题。虽然OPs问题与计数有关,但最重要的问题(正如您的评论所指出的):是通过插入必要的括号来平衡括号。谢谢你的回答。我理解函数中发生的所有事情。但是我不认为我会理解任务,特别是如果以这种方式给出的话。他们给我的唯一输入示例是“(())”、“())”和“()()”。我想如果给我更多的(和不同种类的)例子,我就能做到。
console.log(balanceParentheses('(())))())))())))))))))()())))()))))))))(')