链接: https://oj.leetcode.com/problems/evaluate-reverse-polish-notation/
后缀表达式求值
class Solution
{
public:
int evalRPN(vector<string> &tokens)
{
stack<int> stk;
int ans=0;
for(int i=0;i<tokens.size();i++)
{
string tem=tokens[i];
if((tem[0]>='0'&&tem[0]<='9')||(tem[1]>='0'&&tem[1]<='9')) //为数字
{
stk.push(atoi(tem.c_str()));
}
else //为字符
{
int a=stk.top();
stk.pop();
int b=stk.top();
stk.pop();
if(tem=="+")
ans=b+a;
if(tem=="-")
ans=b-a;
if(tem=="*")
ans=b*a;
if(tem=="/")
ans=b/a;
stk.push(ans);
}
}
return stk.top();
}
};