题解 | #逆波兰表达式求值#
逆波兰表达式求值
https://www.nowcoder.com/practice/885c1db3e39040cbae5cdf59fb0e9382
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
* @param rpnExpression string 字符串一维数组
* @return int整型
*/
function evalRPN(rpnExpression) {
// write code here
let stack = [];
let operators = {
'+': function (x, y) { return x + y; },
'-': function (x, y) { return x - y; },
'*': function (x, y) { return x * y; },
'/': function (x, y) { return parseInt(x / y); }
};
rpnExpression.forEach(
(token) => {
if (token in operators) {
let y = stack.pop();
let x = stack.pop();
let result = operators[token](x, y);
stack.push(result);
} else {
stack.push(parseInt(token));
}
}
);
return stack.pop();
}
module.exports = {
evalRPN: evalRPN
};