zoukankan      html  css  js  c++  java
  • 150.Evaluate Reverse Polish Notation

    class Solution {
    public:
        int evalRPN(vector<string> &tokens) {
            // IMPORTANT: Please reset any member data you declared, as
            // the same Solution instance will be reused for each test case.
            int len = tokens.size();
            stack<int> S;
            for(int i = 0; i < len; i++)
            {
                if(tokens[i] == "+" || tokens[i] == "-" ||
                    tokens[i] == "*" || tokens[i] == "/")
                {
                    int op2 = S.top(); S.pop();
                    int op1 = S.top(); S.pop();
                    S.push( op(op1, op2, tokens[i][0]) );
                }
                else
                    S.push(stoi(tokens[i]));
            }
            return S.top();
        }
        int op(int op1, int op2, char optor)
        {
            if(optor == '+')return op1 + op2;
            else if(optor == '-')return op1 - op2;
            else if(optor == '*')return op1 * op2;
            else return op1 / op2;
        }
    };
    
  • 相关阅读:
    STM32-串口通信
    STM32-系统计时器(systick)
    字符串操作常用的函数
    基本MarkDown语法
    结构
    python入门
    贪心算法小结
    POJ1631_高深DP
    POJ3046ANT_COUNTING
    POJ1742coins
  • 原文地址:https://www.cnblogs.com/smallredness/p/10681993.html
Copyright © 2011-2022 走看看