此题没什么难度,主要是对c++语法更熟悉了下,一个是isdigit不能判断字符串,还有就是要注意符号的判断,还有字符串和数之间的相互转化。
#include <ctype.h>
class Solution {
public:
int evalRPN(vector<string>& tokens) {
vector<int> s;
for(auto t: tokens)
{
if(isdigit(t[0]) || t.size()>1 && isdigit(t[1]))s.push_back(stoi(t));
else
{
int b = s.back(), a = s[s.size()-2];
s.pop_back();
s.pop_back();
int c = t[0];
if(c == '+')s.push_back(a+b);
else if(c == '-')s.push_back(a-b);
else if(c == '*')s.push_back(a*b);
else if(c == '/')s.push_back(a/b);
}
}
return s[0];
}
};