摘要:中的运算符,运算之后要出来,继续遍历数组。是放入新的数字,用转换为均可。
Problem
Evaluate the value of an arithmetic expression in Reverse Polish Notation.
Valid operators are +, -, *, /. Each operand may be an integer or another expression.
Example["2", "1", "+", "3", "*"] -> ((2 + 1) * 3) -> 9 ["4", "13", "5", "/", "+"] -> (4 + (13 / 5)) -> 6Note
Switch中的运算符case,运算之后要break出来,继续遍历tokens数组。
default是放入新的数字,用parseInt()/valueOf()转换String为Integer均可。
public class Solution { public int evalRPN(String[] tokens) { if (tokens == null || tokens.length % 2 == 0) return 0; Stackstack = new Stack (); for (String tok: tokens) { switch(tok) { case "+": stack.push(stack.pop() + stack.pop()); break; case "-": stack.push(-stack.pop() + stack.pop()); break; case "*": stack.push(stack.pop() * stack.pop()); break; case "/": int divisor = stack.pop(); int dividend = stack.pop(); stack.push(dividend/divisor); break; default: stack.push(Integer.valueOf(tok)); } } return stack.pop(); } }
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/65499.html
摘要:栈法复杂度时间空间思路逆波兰表达式的计算十分方便,对于运算符,其运算的两个数就是这个运算符前面的两个数。注意对于减法,先弹出的是减号后面的数。 Evaluate Reverse Polish Notation Evaluate the value of an arithmetic expression in Reverse Polish Notation. Valid operato...
Problem Evaluate the value of an arithmetic expression in Reverse Polish Notation. Valid operators are +, -, *, /. Each operand may be an integer or another expression. Note: Division between two inte...
摘要:题目链接来做,保存数字,碰到符号的时候就弹出两个数字计算算完后再放入,最后里面的就是结果。 150. Evaluate Reverse Polish Notation 题目链接:https://leetcode.com/problems... stack来做,保存数字,碰到符号的时候就弹出两个数字计算算完后再放入stack,最后stack里面的就是结果。 public class So...
摘要:我们一般看到的数学表达式就是中缀表达式,也就是将符号放在两个数字之间。后缀表达式也就是将运算符放在相应数字的后面。后缀表达式相当于树中的后序遍历。通过获得对应位置的操作符。如果对应的还是操作符,则继续递归往前计算。 题目要求 Evaluate the value of an arithmetic expression in Reverse Polish Notation. Valid...
阅读 1553·2021-09-26 09:46
阅读 2632·2021-09-07 09:59
阅读 2723·2021-09-07 09:59
阅读 1818·2019-08-30 14:20
阅读 886·2019-08-26 13:39
阅读 3111·2019-08-26 12:24
阅读 743·2019-08-26 11:55
阅读 1191·2019-08-23 16:49