题目
代码(首刷自解)
有点笨,代码写的非常冗余。知识点是int
转string
:用itos
,反之用stoi
class Solution {
public:
int evalRPN(vector<string>& tokens) {
stack<int> stk;
for(string& s : tokens) {
if(s[0] == '+') {
int s1 = stk.top();
stk.pop();
int s2 = stk.top();
stk.pop();
stk.push(s1 + s2);
} else if(s.size() == 1 && s[0] == '-') {
int s1 = stk.top();
stk.pop();
int s2 = stk.top();
stk.pop();
stk.push(s2 - s1);
} else if(s[0] == '*') {
int s1 = stk.top();
stk.pop();
int s2 = stk.top();
stk.pop();
stk.push(s1 * s2);
} else if(s[0] == '/') {
int s1 = stk.top();
stk.pop();
int s2 = stk.top();
stk.pop();
stk.push(s2 / s1);
} else {
stk.push(stoi(s));
}
}
return stk.top();
}
};