偷个懒用eval 不想去判断符号

后缀表达式求值

http://www.nowcoder.com/questionTerminal/22f9d7dd89374b6c8289e44237c70447

function evalRPN(tokens) {
  // write code here
  let flag = ['+', '-', '*', '/'];
  var res = [];
  let sum = 0;
  for (let i = 0; i < tokens.length; i++) {
    let index = flag.indexOf(tokens[i]);
    if (index !== -1) {
      let r1 = res.pop();
      let r2 = res.pop();
      let opr = flag[index];
      sum = eval(`${r2}${opr}(${r1})`);
      res.push(parseInt(sum+''))
    } else {
      res.push(tokens[i]);
    }
  }
   return res.pop();

}
全部评论
不用eval ,parseInt 改成Math.floor 都一定会报错,是啥原因
点赞 回复 分享
发布于 2022-07-12 14:31
但是效率会比较低,indexOf()应该每次都会遍历flag数组, 会很慢,就是为了偷个懒
点赞 回复 分享
发布于 2020-11-01 22:52

相关推荐

刘湘_passion:出国旅游?那就小心你的腰子咯
点赞 评论 收藏
分享
05-07 17:58
门头沟学院 Java
wuwuwuoow:1.简历字体有些怪怪的,用啥写的? 2.Redis 一主二从为什么能解决双写一致性? 3.乐观锁指的是 SQL 层面的库存判断?比如 stock > 0。个人认为这种不算乐观锁,更像是乐观锁的思想,写 SQL 避免不了悲观锁的 4.奖项证书如果不是 ACM,说实话没什么必要写 5.逻辑过期时间为什么能解决缓存击穿问题?逻辑过期指的是什么 其实也没什么多大要改的。海投吧
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务