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
    发布时间:
    原始链接:
  • 相关阅读:
    css居中问题(转)
    Request.ServerVariables 各个参数的用法
    html5 画个球碰撞
    递归生成json
    AspNetPager分页结合存储过程的用法
    sql+aspnetpager+查询功能
    求1+2+……+n
    几种排序的比较 bitmapsort,qsort,set
    利用两个栈,反转其中一个栈的元素
    进程间通信(IPC, Inter Process Communication)读书笔记
  • 原文地址:https://www.cnblogs.com/lepeCoder/p/7230542.html
Copyright © 2011-2022 走看看