java实现逆波兰表达式(后缀表达式)求值 | 您所在的位置:网站首页 › 栈的后缀表达式求值c语言 › java实现逆波兰表达式(后缀表达式)求值 |
问题描述
给你一个字符串数组 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 实验室设备网 版权所有 |