150. 逆波兰表达式求值

也是经典的编译题目

class Solution {
public:
    int evalRPN(vector<string>& tokens) {
       stack<long long> stll;

       for( int i = 0; i < tokens.size(); i++ )
       {
           
        if( tokens[i] == "+" || tokens[i] == "-" || tokens[i] == "*" || tokens[i] == "/" )
        {
            long long num1 = stll.top();
            stll.pop();
            long long num2 = stll.top();
            stll.pop();
			
	    //注意操作数的顺序
            if( tokens[i] == "+") stll.push( num2 + num1 );
            if( tokens[i] == "-") stll.push( num2 - num1 );
            if( tokens[i] == "*") stll.push( num2 * num1 );
            if( tokens[i] == "/") stll.push( num2 / num1 );
        }
        else
             stll.push( stoi(tokens[i]) );
        
       }
       return stll.top();
    }
};
posted @ 2025-03-03 21:18  名字好难想zzz  阅读(7)  评论(0)    收藏  举报