java实现逆波兰表达式(后缀表达式)求值 您所在的位置:网站首页 栈的后缀表达式求值c语言 java实现逆波兰表达式(后缀表达式)求值

java实现逆波兰表达式(后缀表达式)求值

2023-06-06 03:47| 来源: 网络整理| 查看: 265

问题描述

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

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

注意:

有效的算符为 '+'、'-'、'*' 和 '/' 。 每个操作数(运算对象)都可以是一个整数或者另一个表达式。 两个整数之间的除法总是 向零截断 。 表达式中不含除零运算。 输入是一个根据逆波兰表示法表示的算术表达式。 答案及所有中间计算结果可以用 32 位 整数表示。 实例

在这里插入图片描述原题OJ链接 https://leetcode.cn/problems/evaluate-reverse-polish-notation/

解答 import java.util.Stack; public class Test{ public static void main(String[] args) { String[] tokens = {"4","13","5","/","+"}; System.out.println(evalRPN(tokens)); } public static int evalRPN(String[] tokens) { Stack stack = new Stack(); for (String x:tokens) { if(x.equals("+") ||x.equals("-") || x.equals("*") ||x.equals("/")){ int num2 = stack.pop(); int num1 = stack.pop(); switch (x){ case "+":{ stack.push(num1+num2); break; } case "-":{ stack.push(num1-num2); break; }case "*":{ stack.push(num1*num2); break; }case "/":{ stack.push(num1/num2); break; } } } else{ stack.push(Integer.parseInt(x)); } } return stack.pop(); } }

结果 在这里插入图片描述



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有