题解 | #中缀表达式转后缀表达式#

中缀表达式转后缀表达式

https://www.nowcoder.com/practice/4e7267b55fdf430d9403aa12206572b3

  1. 非运算符:直接打印
  2. 运算符:
    与栈顶元素作比较,依次出栈优先级>=此运算符的元素,遇到栈顶为更低时停止;
    当前运算符入栈;

核心代码如下:

const power = {
  "+": 1,
  "-": 1,
  "*": 2,
  "/": 2,
};
function postfix(tokens) {
  // tokens为字符数组'a+b*c/d-a+f/b'.split('');
  let stack = [];
  let result = [];
  tokens.forEach((item) => {
    // 非运算符直接打印
    if ("+-*/".indexOf(item) === -1) {
      result.push(item);
    } else {
      // 如果栈顶优先级 >= 当前运算符,就出栈
      while (power[item] <= power[stack[stack.length - 1]]) {
        result.push(stack.pop());
      }
      // 运算符入栈
      stack.push(item);
    }
  });
  // 出栈剩余的所有运算符
  while (stack.length !== 0) {
    result.push(stack.pop());
  }
  return result.join("");
}
#真人模拟面试#
全部评论

相关推荐

uu们,拒offer时hr很生气怎么办我哭死
爱睡觉的冰箱哥:人家回收你的offer,或者oc后没给你发offer的时候可不会愧疚你,所以你拒了也没必要愧疚他。
点赞 评论 收藏
分享
nus2201602...:兄弟,你这个简历撕了丢了吧,就是一坨,去找几个项目,理解项目流程,看几遍就是你的了,看看八股就去干了,多看看牛客里别人发出来的简历,对着写,你这写的啥啊,纯一坨
点赞 评论 收藏
分享
06-11 17:39
门头沟学院 Java
小呆呆的大鼻涕:卧槽,用户彻底怒了
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务