Leetcode 150:逆波兰表达式求值

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

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

示例 1:

复制代码
输入:tokens = ["2","1","+","3","*"]
输出:9
解释:该算式转化为常见的中缀算术表达式为:((2 + 1) * 3) = 9

示例 2:

复制代码
输入:tokens = ["4","13","5","/","+"]
输出:6
解释:该算式转化为常见的中缀算术表达式为:(4 + (13 / 5)) = 6
java 复制代码
import java.util.Stack;

public class title150 {
    public static void main(String[] args) {
        String[] tokens = {"2", "1", "+", "3", "*"};
        System.out.println(evalRPN(tokens));
    }

    public static int evalRPN(String[] tokens) {
        Stack<Integer> stack = new Stack<>();
        Integer a, b, c;
        for (int i = 0; i < tokens.length; i++) {
            //1.先判断是否为四种符号
            String s = tokens[i];
            if (s.equals("+")) {
                //需要将字符串形式的数字转化为int型
                a = stack.pop();
                b = stack.pop();
                c = a + b;
                stack.push(c);
            } else if (s.equals("-")) {
                a = stack.pop();
                b = stack.pop();
                c = b - a;
                stack.push(c);
            } else if (s.equals("*")) {
                a = stack.pop();
                b = stack.pop();
                c = a * b;
                stack.push(c);
            } else if (s.equals("/")) {
                a = stack.pop();
                b = stack.pop();
                c = b / a;
                stack.push(c);
            } else {
                //先将字符串数字转换为int,再入栈
                stack.push(Integer.valueOf(s));
            }
        }
        return stack.pop();
    }
}
相关推荐
丫头,冲鸭!!!12 分钟前
B树(B-Tree)和B+树(B+ Tree)
笔记·算法
Re.不晚16 分钟前
Java入门15——抽象类
java·开发语言·学习·算法·intellij-idea
凤枭香21 分钟前
Python OpenCV 傅里叶变换
开发语言·图像处理·python·opencv
雷神乐乐22 分钟前
Maven学习——创建Maven的Java和Web工程,并运行在Tomcat上
java·maven
码农派大星。25 分钟前
Spring Boot 配置文件
java·spring boot·后端
测试杂货铺28 分钟前
外包干了2年,快要废了。。
自动化测试·软件测试·python·功能测试·测试工具·面试·职场和发展
vip45130 分钟前
Linux 经典面试八股文
linux
大霞上仙32 分钟前
Ubuntu系统电脑没有WiFi适配器
linux·运维·电脑
顾北川_野32 分钟前
Android 手机设备的OEM-unlock解锁 和 adb push文件
android·java
艾派森32 分钟前
大数据分析案例-基于随机森林算法的智能手机价格预测模型
人工智能·python·随机森林·机器学习·数据挖掘