反向表达式求值

来源:互联网 发布:淘宝店铺运营外包 编辑:程序博客网 时间:2024/06/05 18:39

本题源自leetcode

----------------------------------------------------------------------------------------------

遇见操作数进栈,遇见操作符弹出俩个操作数运算,将结果压栈。

 int evalRPN(vector<string> &tokens) {    stack<int> valueStack;                for(string token:tokens){            if(isOperator(token)){                int sum=0;                int a=valueStack.top();                valueStack.pop();                int b=valueStack.top();                valueStack.pop();                if(token=="+")                    sum=a+b;                else if(token=="-")                    sum=b-a;                else if(token=="*")                    sum=a*b;                else if(token=="/")                    sum=b/a;                valueStack.push(sum);            }else{                stringstream ss;                ss<<token;                int temp=0;                ss>>temp;                valueStack.push(temp);            }        }        return valueStack.top();    }    bool isOperator(string s){        if(s=="+" || s=="-"||s=="*"||s=="/")            return true;        return false;    }};