LeetCode 150 Evaluate Reverse Polish Notation

LeetCode 150 Evaluate Reverse Polish Notation

后缀表达式,利用栈就可以轻松计算
c++

class Solution {
public:
    int stack[10005];
    int pos=0;
    int evalRPN(vector<string>& tokens) {
        int l = tokens.size();
        for(int i=0;i<l;i++)
        {
            if(tokens[i]=="+"||tokens[i]=="-"||tokens[i]=="*"||tokens[i]=="/")
            {
                int value1 = stack[--pos];
                int value2 = stack[--pos];
                
                if(tokens[i]=="+")
                {
                    stack[pos++]=value1+value2;
                }
                else if(tokens[i]=="-")
                {
                    stack[pos++]=value2-value1;
                }
                else if(tokens[i]=="*")
                {
                    stack[pos++]=value2*value1;
                }
                else if(tokens[i]=="/")
                {
                    stack[pos++]=value2/value1;
                }
            }
            else
            {
             int value = atoi(tokens[i].c_str());
             stack[pos++]=value;
            }
    
        }
        return stack[0];
    }
};
posted @ 2019-03-12 08:32  Shendu.CC  阅读(96)  评论(0编辑  收藏  举报