zoukankan      html  css  js  c++  java
  • 150.逆波兰表达式求值

    2020-05-28
    逆波兰表达式求值

    根据逆波兰表示法,求表达式的值。

    有效的运算符包括 +, -, *, / 。

    每个运算对象可以是整数,也可以是另一个逆波兰表达式。

    说明:
    • 整数除法只保留整数部分。
    • 给定逆波兰表达式总是有效的。换句话说,表达式总会得出有效数值且不存在除数为 0 的情况。
    题解:
    思路1:栈
    /**
     * @param {string[]} tokens
     * @return {number}
     */
    var evalRPN = function (tokens) {
      let stack = [], re = /^[+-*/]$/, tmp1, tmp2;
      for (let i = 0; i < tokens.length; i++) {
        if (re.test(tokens[i])) { // 2、如果是+-*/ 那么最后两项出栈与改运算符运算 运算的结果再推入栈中
          tmp2 = stack.pop();
          tmp1 = stack.pop();
          if (tokens[i] === '+') stack.push(tmp1 + tmp2);
          else if (tokens[i] === '-') stack.push(tmp1 - tmp2);
          else if (tokens[i] === '*') stack.push(tmp1 * tmp2);
          else if (tokens[i] === '/') { // 如果是除法 要判断最后的值是否大于0 大于0向下取整 小于0向上
            if (tmp1 / tmp2 > 0) stack.push(Math.floor(tmp1 / tmp2));
            else stack.push(Math.ceil(tmp1 / tmp2));
          }
        } else {
          stack.push(parseInt(tokens[i])); // 1、如果遍历到的项是数字项 推入栈中
        }
      }
      return stack[0];
    };
  • 相关阅读:
    pycharm的一些操作指令和技巧
    Python开发:模块
    python字符编码
    Pyhton开发:Python基础杂货铺
    Python之函数
    python介绍
    记录
    HDOJ3699 A hard Aoshu Problem[暴力]
    HDOJ3697 Selecting courses[贪心]
    HDOJ4054 Hexadecimal View[编码题]
  • 原文地址:https://www.cnblogs.com/lanpang9661/p/12978480.html
Copyright © 2011-2022 走看看