欢迎您访问365答案网,请分享给你的朋友!
生活常识 学习资料

150.逆波兰表达式求值——栈的运用

时间:2023-08-07

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)

Copyright © 2016-2020 www.365daan.com All Rights Reserved. 365答案网 版权所有 备案号:

部分内容来自互联网,版权归原作者所有,如有冒犯请联系我们,我们将在三个工作时内妥善处理。