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(); // 最后栈顶就是答案
    }
};
相关推荐
漂流瓶jz1 小时前
UVA-1610 聚会游戏 题解答案代码 算法竞赛入门经典第二版
数据结构·c++·算法·题解·aoapc·算法竞赛入门经典·uva
imDwAaY1 小时前
Redis Set 如何节省内存?从整数集合到哈希表的设计取舍
数据结构·redis·散列表
无名猿2 小时前
map / set 完全指南:红黑树与有序容器
数据结构·c++·性能优化·stl·标准库
All for pursuit.2 小时前
【回溯-3】39.组合总和
数据结构·c++·算法·leetcode
不会就选b2 小时前
算法日常・每日刷题--<动态规划>6
数据结构·算法·leetcode
漂流瓶jz2 小时前
UVA-12545 比特变换器 题解答案代码 算法竞赛入门经典第二版
数据结构·算法·题解·aoapc·算法竞赛入门经典·uva·12545
吹什么轩3 小时前
数据结构复习:二叉搜索树
数据结构·算法
H.莓飛3 小时前
【数据结构】堆
linux·数据结构·算法
H.莓飛15 小时前
【数据结构】队列
linux·数据结构·centos