本题源自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;
}
};