LeetcodeEvaluate Reverse Polish Notation
Posted wuezs
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetcodeEvaluate Reverse Polish Notation相关的知识,希望对你有一定的参考价值。
题目链接:https://leetcode.com/problems/evaluate-reverse-polish-notation/
题目:
Evaluate the value of an arithmetic expression in Reverse Polish Notation.
Valid operators are +
, -
, *
, /
.
Each operand may be an integer or another expression.
Some examples:
["2", "1", "+", "3", "*"] -> ((2 + 1) * 3) -> 9 ["4", "13", "5", "/", "+"] -> (4 + (13 / 5)) -> 6
思路:
easy
算法:
public int evalRPN(String[] tokens) { Stack<String> stack = new Stack<String>(); for (String token : tokens) { stack.push(token); if (!Character.isDigit(stack.peek().charAt(stack.peek().length() - 1))) { String op = stack.pop(); String num2 = stack.pop(); String num1 = stack.pop(); String result = eval(op, num1, num2); stack.push(result); } } return Integer.parseInt(stack.pop()); } private String eval(String op, String num1, String num2) { int res = 0; int n1 = Integer.parseInt(num1); int n2 = Integer.parseInt(num2); switch (op) { case "+": res = n1 + n2; break; case "-": res = n1 - n2; break; case "*": res = n1 * n2; break; case "/": res = n1 / n2; break; } return res + ""; }
以上是关于LeetcodeEvaluate Reverse Polish Notation的主要内容,如果未能解决你的问题,请参考以下文章
Django中reverse()和reverse_lazy()的区别
攻防世界 reverse 进阶 10 Reverse Box