逆波兰表达式求值(中等)

可以构建一个int类型的栈,在遍历token数组的时候,如果遇到数字,就把字符串类型的数字转化为int类型,放入s栈中,如果遇到加减乘除符号,就把栈顶的两个元素取出来,进行相应的运算操作,然后把计算结果压入栈中。

最后的答案就是栈顶元素,全部处理完后栈中只有一个元素。

java 复制代码
class Solution {
    public int evalRPN(String[] tokens) {
        Stack<Integer> stack=new Stack<>();
        for(int i=0;i<tokens.length;i++){
            if(tokens[i].equals("+")){
                int x=stack.pop();
                int y=stack.pop();
                int z=x+y;
                stack.push(z);
            }else if(tokens[i].equals("-")){
                int x=stack.pop();
                int y=stack.pop();
                int z=y-x;
                stack.push(z);
            }else if(tokens[i].equals("*")){
                int x=stack.pop();
                int y=stack.pop();
                int z=x*y;
                stack.push(z);
            }else if(tokens[i].equals("/")){
                int x=stack.pop();
                int y=stack.pop();
                int z=y/x;
                stack.push(z);
            }else{
                stack.push(Integer.valueOf(tokens[i]));
            }

        }
        return stack.pop();
    }
}
相关推荐
晨晖26 小时前
单链表逆转,c语言
c语言·数据结构·算法
其美杰布-富贵-李8 小时前
HDF5文件学习笔记
数据结构·笔记·学习
明洞日记10 小时前
【数据结构手册008】STL容器完全参考指南
开发语言·数据结构·c++
kingmax5421200810 小时前
《数据结构C语言:单向链表-链表基本操作(尾插法建表、插入)》15分钟试讲教案【模版】
c语言·数据结构·链表
AI科技星10 小时前
质量定义方程常数k = 4π m_p的来源、推导与意义
服务器·数据结构·人工智能·科技·算法·机器学习·生活
Fine姐11 小时前
数据结构04——二叉树搜索树BST
数据结构
仰泳的熊猫11 小时前
1077 Kuchiguse
数据结构·c++·算法·pat考试
阿里巴巴AI编程社区11 小时前
Qoder 提效实战:数据开发工程师用 Qoder 提效50%
数据结构
消失的旧时光-194311 小时前
从 C 链表到 Android Looper:MessageQueue 的底层原理一条线讲透
android·数据结构·链表
夏乌_Wx12 小时前
练题100天——DAY28:找消失的数字+分发饼干
数据结构·算法