力扣150. 逆波兰表达式求值(JavaScript)

var evalRPN = function(tokens) {
    let arr=[]
    const map = new Map([
        ["+", (a, b) => a * 1  + b * 1],
        ["-", (a, b) => b - a],
        ["*", (a, b) => b * a],
        ["/", (a, b) => (b / a) | 0]
    ]);
    for (let x of tokens){
        //如果不是+-*/,则入栈
        if(!map.has(x)){
            arr.push(x)
            continue
        }
            //处理后的值入栈
            arr.push(map.get(x)(arr.pop(),arr.pop())) 
    }
    return arr[0]
};
  • 遇到数字则入栈;遇到算符则取出栈顶两个数字进行计算,并将结果压入栈中。

你可能感兴趣的:(力扣算法题,leetcode,javascript,vue.js)