下面给出图解:
下面给出代码:
class Solution {
public:int evalRPN(vector<string>& tokens) {stack<int> st;//循环遍历表达式 范围forfor(const auto& str : tokens) {if(str == "+" || str == "-"|| str == "*" || str == "/") {//遇到操作符//取出两个操作数int right = st.top();st.pop();int left = st.top();st.pop();//计算结果并入栈if(str == "+")st.push(left + right);else if(str == "-")st.push(left - right);else if(str == "*")st.push(left * right);else st.push(left / right);}else {//遇到操作数//入栈, 注意要转换成整型, 使用string的库函数即可st.push(stoi(str));}}//栈顶即为最后的结果return st.top();}
};