zoukankan      html  css  js  c++  java
  • LeetCode-EvaluteReversePolishNotation

    题目:

    Evaluate the value of an arithmetic expression in Reverse Polish Notation.
    Valid operators are +, -, *, /. Each operand may be an integer or another expression.

    Some examples:
      ["2", "1", "+", "3", "*"] -> ((2 + 1) * 3) -> 9
      ["4", "13", "5", "/", "+"] -> (4 + (13 / 5)) -> 6

    分析:

    求解逆波兰表达式,从公式中提取字符串,如果是操作数就push进栈中,如果是操作符就从栈中pop出两个数,用第二个数和第一个数做运算.

    AC代码:

    //求解逆波兰表达式
    class Solution {
    public:
        int evalRPN(vector<string>& tokens) {
            stack<int> num;
            for(auto token:tokens){
                if(token == "+" || token == "-" || token == "*"||token == "/"){
                    int a, b, ans;
                    b = num.top(); num.pop();
                    a = num.top(); num.pop();
                    if(token == "+")
                        ans = a + b;
                    if(token == "-")
                        ans = a - b;
                    if(token == "*")
                        ans = a * b;
                    if(token == "/")
                        ans = a / b;
                    num.push(ans);
                }
                else{
                    num.push(stoi(token));
                }
            }
            return num.top();
        }
    };
    转载请保留原文链接及作者
    本文标题:
    文章作者: LepeCoder
    发布时间:
    原始链接:
  • 相关阅读:
    CentOS6.5安装Tab增强版:bash-completion
    005_linux下logrotate 配置和理解
    ITIL与ITSM的联系与区别
    C++----练习--bool类型作为特别的int要区别对待
    C++----练习--while求和
    C++----练习
    mysql----二进制包安装
    linux----ulimit 限制
    python----特性003
    python----特性002
  • 原文地址:https://www.cnblogs.com/lepeCoder/p/7230542.html
Copyright © 2011-2022 走看看