力扣 150. 逆波兰表达式求值 栈

https://leetcode-cn.com/problems/evaluate-reverse-polish-notation/
力扣 150. 逆波兰表达式求值 栈_第1张图片
思路:搞个栈模拟一下就行。遇到运算符弹出栈顶的两个数计算出结果再压进去即可。

class Solution {
public:
    int evalRPN(vector<string>& tokens) {
        stack<int> s;
        for(auto str:tokens){
            if(str[0]>='0'&&str[0]<='9'||str.size()>1)
                s.push(stoi(str));
            else{
                int v1=s.top();
                s.pop();
                if(str[0]=='+')
                    s.top()+=v1;
                else if(str[0]=='-')
                    s.top()-=v1;
                else if(str[0]=='*')
                    s.top()*=v1;
                else
                    s.top()/=v1;
            }
        }
        return s.top();
    }
};

你可能感兴趣的:(面试题,模拟,栈)