力扣-150-逆波兰表达式求值
刚做完字符串解码,说是和逆波兰表达式求值很像,都是栈操作
逆波兰式也知道,就是后缀表达式,但是要写一下子不一定写得出出来
评论有说这题应属easy,应该是因为把这段儿写出来了吧
int evalRPN(vector<string>& tokens) { vector<long> nums; int i = 0; long num1,num2; while (i < tokens.size()) { if (tokens[i] != "+" && tokens[i] != "-" && tokens[i] != "*" && tokens[i] != "/") nums.push_back(stoi(tokens[i])); else { num1 = nums.back(); nums.pop_back(); num2 = nums.back(); nums.pop_back(); if (tokens[i] == "+") { nums.push_back(num1 + num2); } else if (tokens[i] == "-") { // 还有这里的顺序 nums.push_back(num2 - num1); } else if (tokens[i] == "*") { nums.push_back(num1 * num2); } else { // 注意这里的顺序 nums.push_back(num2 / num1); } } i++; } return nums.back(); }
注意这里的两个中间值num1和num2用int会越界,改成long
本文作者:YaosGHC
本文链接:https://www.cnblogs.com/yaocy/p/16891763.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步