题解 | #逆波兰表达式求值#

逆波兰表达式求值

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
};

全部评论

相关推荐

02-28 13:25
已编辑
门头沟学院 Java
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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