zoukankan      html  css  js  c++  java
  • [LeetCode]Evaluate Reverse Polish Notation

    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
    

    思考:注意负数。

    class Solution {
    public:
        int stoi(string str)
        {
    		bool flag=true;
    		if(str[0]=='-') flag=false;
            int ret=0,i;
    		i=(flag)?0:1;
            for(;i<str.size();i++)
            {
                ret=ret*10+(str[i]-'0');
            }
            return (flag)?ret:(-ret);
        }
        int evalRPN(vector<string> &tokens) {
            int ans=0;
            stack<int> s;
            int a,b,c;
            for(int i=0;i<tokens.size();i++)
            {
                if(tokens[i]!="+"&&tokens[i]!="-"&&tokens[i]!="*"&&tokens[i]!="/")
                {
                    string str=tokens[i];
                    int temp=stoi(str);
                    s.push(temp);
                }
                else
                {
                    a=s.top();
                    s.pop();
                    b=s.top();
                    s.pop();
                    if(tokens[i]=="+") c=b+a;
                    if(tokens[i]=="-") c=b-a;
                    if(tokens[i]=="*") c=b*a;
                    if(tokens[i]=="/") c=b/a;
                    s.push(c);
                }
            }
            ans=s.top();
            return ans;
        }
    };
    

      

  • 相关阅读:
    Domain Space
    Class WriteGroupAttribute
    HelloCube:IJobForEach
    HelloCube:ForEach
    组件
    世界
    DOTS默认情况下的性能
    ECS适合你吗?
    DOTS原则和愿景
    Packages window(包窗口)
  • 原文地址:https://www.cnblogs.com/Rosanna/p/3449286.html
Copyright © 2011-2022 走看看