LeetCode.150.逆波兰表达式求值

题目

给你一个字符串数组 tokens ,表示一个根据 逆波兰表示法 表示的算术表达式。

请你计算该表达式。返回一个表示表达式值的整数。

逆波兰这个也看多了,就是依次取栈顶的两个数进行运算。

考虑到用栈的数据结构即可,切记运算好的结果要重新入栈

cpp 复制代码
class Solution {
public:
    int evalRPN(vector<string>& tokens) {
        stack<long long> st;
        for (int i = 0; i < tokens.size(); i++) {
            if (tokens[i] == "+" || tokens[i] == "-" || tokens[i] == "*" || tokens[i] == "/") {
                long long b = st.top();
                st.pop();
                long long a = st.top();
                st.pop();
                long long cal;
                if (tokens[i] == "+") cal = a + b;
                else if (tokens[i] == "-") cal = a - b;
                else if (tokens[i] == "*") cal = a * b;
                else if (tokens[i] == "/") cal = a / b;
                st.push(cal); // 计算结果放回栈!
            }else {
                st.push(stoll(tokens[i]));
            }
        }
        return st.top(); // 最后栈顶就是答案
    }
};
相关推荐
若亦_38 分钟前
数据结构>>优先级队列(堆)
java·数据结构
bksczm1 小时前
Redis数据结构之hash
数据结构·redis·哈希算法·1024程序员节
星夜离尘564 小时前
MATLAB 因果采样保持:用历史匹配和数据年龄防止未来信息泄漏
数据结构·算法·matlab
思麟呀5 小时前
BTree的原理与 C++ 完整实现
c语言·数据结构·c++·算法·1024程序员节
黄俊懿5 小时前
【架构师从入门到进阶】第七章:缓存和存储的优化思路——第一节:缓存概述
数据结构·数据库·分布式·缓存·架构·系统架构·1024程序员节
晒太羊的猫6 小时前
hot100 堆
数据结构
啵啵啵鱼6 小时前
用 Claude Code 重构遗留系统:从评估到落地的完整实践
数据结构·1024程序员节
如何原谅奋力过但无声6 小时前
【LeetCode hot100】代码随想录未cover部分
数据结构·算法·leetcode
H.莓飛6 小时前
【数据结构】排序_OJ题(二):划分与选择
linux·服务器·c语言·开发语言·数据结构·visual studio
番茄味城市甜菜7 小时前
数据结构:单链表(C语言)
数据结构·链表·1024程序员节