2022-11-15 11:11阅读: 17评论: 0推荐: 0

力扣-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 中国大陆许可协议进行许可。

posted @   YaosGHC  阅读(17)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
💬
评论
📌
收藏
💗
关注
👍
推荐
🚀
回顶
收起