从 JavaScript 中的数学表达式中删除括号

问题

我们需要编写一个 JavaScript 函数,它接受一串数学表达式 str 作为第一个也是唯一的参数。

我们函数的任务是从表达式中删除括号,保持操作和操作数就位。

例如,如果函数的输入是 -

输入

const str = 'u-(v-w-(x+y))-z';

输出

const output = 'u-v+w+x+y-z';

示例

以下是代码 -

const str = 'u-(v-w-(x+y))-z';

const removeParentheses = (str = '') => {

   let stack = []

   let lastSign = '+'

      for (let char of str) {

         if (char === '(' || char === ')') {

            lastSign = stack[stack.length - 1] || '+'

         } else if (char === '+') {

            if (stack[stack.length - 1] !== '-' && stack[stack.length - 1] !== '+') {

               stack.push(lastSign)

            }

         } else if (char === '-') {

            if (lastSign === '-') {

               if (stack[stack.length - 1] === '-') stack.pop()

                  stack.push('+')

         } else {

            if (stack[stack.length - 1] === '+') stack.pop()

            stack.push('-')

            }

         } else {

            stack.push(char)

      }

   }

   return stack.join('').replace(/^\+/, '')

};

console.log(removeParentheses(str));

输出结果
u-v+w+x+y-z

以上是 从 JavaScript 中的数学表达式中删除括号 的全部内容, 来源链接: utcz.com/z/353597.html

回到顶部