要求:1,2,+类似的表达式计算
思路:栈
class Solution {
public:
int evalRPN(vector<string>& tokens) {
stack<int> stk; // 牛一个栈
for (string& token : tokens) { // 遍历tokens
if (token == "+" || token == "-" || token == "*" || token == "/") { // 若遇到运算符则启动出栈
int num1 = stk.top();
stk.pop();
int num2 = stk.top();
stk.pop(); // 接连弹出两个数 并按照规则运算后塞回去
if (token == "+") stk.push(num1 + num2);
if (token == "-") stk.push(num2 - num1);
if (token == "*") stk.push(num1 * num2);
if (token == "/") stk.push(num2 / num1);
} else {stk.push(stoi(token));} // 如果是正常数的话转化成INT(标准库stoi函数)后塞进去
}
return stk.top();
}
};