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

可以构建一个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();
    }
}
相关推荐
一个爱编程的人5 小时前
一个数是不是素数
数据结构·算法
忡黑梨6 小时前
eNSP_从直连到BGP全网互通
c语言·网络·数据结构·python·算法·网络安全
地球资源数据云7 小时前
1900-2023年中国物种分布点位矢量数据集
大数据·数据结构·数据库·数据仓库·人工智能
AI人工智能+电脑小能手7 小时前
【大白话说Java面试题】【Java基础篇】第20题:HashMap在计算index的时候,为什么要对数组长度做减1操作
java·开发语言·数据结构·后端·面试·哈希算法·hash-index
牢姐与蒯7 小时前
cpp数据结构之map
数据结构
故事和你917 小时前
洛谷-算法2-3-分治与倍增5
开发语言·数据结构·c++·算法·动态规划·图论
北顾笙9807 小时前
day37-数据结构力扣
数据结构·算法·leetcode
liuyao_xianhui9 小时前
进程概念与进程状态_Linux
linux·运维·服务器·数据结构·c++·哈希算法·宽度优先
如君愿9 小时前
考研复习 Day 26 | 习题--计算机网络第三章(数据链路层 下)、数据结构 多维数组与广义表
数据结构·计算机网络·考研·记录考研
bqq198610269 小时前
MySQL分库分表
数据结构·mysql