思路
遍历数组,遇到数字进栈,遇到运算符,弹出刚入栈的两个元素进行运算,运算结果入栈。
返回栈顶元素。
代码
class Solution {
public:
int evalRPN(vector<string>& tokens) {
int l=tokens.size();
int m=0,n=0;
stack<int>s;
for(int i=0;i<l;i++)
{
if(tokens[i]=="+"||tokens[i]=="-"||tokens[i]=="*"||tokens[i]=="/")
{
n=s.top();s.pop();
m=s.top();s.pop();
if(tokens[i]=="+")
s.push(m+n);
else if(tokens[i]=="-")
s.push(m-n);
else if(tokens[i]=="*")
s.push(m*n);
else s.push((int)(m/n));
}
else s.push(atoi(tokens[i].c_str()));
}
return s.top();
}
};