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

逆波兰表达式求值

https://www.nowcoder.com/practice/885c1db3e39040cbae5cdf59fb0e9382

/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 *
 * 
 * @param tokens string字符串一维数组 
 * @return int整型
 */
function evalRPN( tokens ) {
    // write code here
    let numarr = [];
    for(let i of tokens) {
      // console.log(i);
      // console.log(!isNaN(Number(0)));
      if(!isNaN(Number(i))){
        numarr.push(i)
      }else{
        let tmp;
        let len = numarr.length;
        switch(i) {
          case '+': {
            tmp = Number(numarr[len - 2]) + Number(numarr[len - 1]);
            numarr.pop();
            numarr.pop();
            numarr.push(tmp);
            console.log(tmp);
            break;
          };
          case '-': {
            tmp = Number(numarr[len - 2]) - Number(numarr[len - 1]);
            numarr.pop();
            numarr.pop();
            numarr.push(tmp);
            console.log(tmp);
            break;
          };
          case '*': {
            tmp = Number(numarr[len - 2]) * Number(numarr[len - 1]);
            numarr.pop();
            numarr.pop();
            numarr.push(tmp);
            console.log(tmp);
            break;
          };
          case '/': {
            tmp = parseInt(Number(numarr[len - 2]) / Number(numarr[len - 1]));
            numarr.pop();
            numarr.pop();
            numarr.push(tmp);
            console.log(tmp);
            break;
          };
        }
      }
    }
    return numarr[0];
}
module.exports = {
    evalRPN : evalRPN
};

// 其实只要知道逆波兰表达式是什么就简单了

算法题合集 文章被收录于专栏

自己做算法的解题代码

全部评论

相关推荐

不愿透露姓名的神秘牛友
11-29 12:19
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
10-12 10:48
已编辑
秋招之苟:邻居家老哥19届双2硕大厂开发offer拿遍了,前几天向他请教秋招,他给我看他当年的简历,0实习实验室项目技术栈跟开发基本不沾边😂,我跟他说这个放在现在中厂简历都过不了
点赞 评论 收藏
分享
11-27 12:36
已编辑
门头沟学院 前端工程师
Apries:这个阶段来说,很厉害很厉害了,不过写的简历确实不是很行,优势删掉吧,其他的还行
点赞 评论 收藏
分享
昨天 17:22
已编辑
西安交通大学 Java
华为 昇腾 ai软件开发 薪资20k x (14-16),职级13A,5%公积金,c/cpp
BLOOMING7:闭眼滴滴,华子给的又少又累
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务