class Solution { public: int evalRPN(vector& tokens) { stack nums; for(auto token : tokens){ if(token[0] >= '0' && token[0] <= '9' || token.size() > 1) //特殊情况是负数,负数的长度必大于1 nums.push(stoi(token)); //转换为int else{ int num2 = nums.top(); //先出的是后进的 nums.pop(); int num1 = nums.top(); nums.pop(); switch (token[0]) //剩下就是算术运算符 { case '+': nums.push(num1 + num2); break; case '-': nums.push(num1 - num2); break; case '*': nums.push(num1 * num2); break; case '/': nums.push(num1 / num2); break; default: break; } } } return nums.top(); } };
Accepted
20/20 cases passed (4 ms)
Your runtime beats 98.3 % of cpp submissions
Your memory usage beats 77.45 % of cpp submissions (11.6 MB)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)