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();
}
};

浙公网安备 33010602011771号