2022-8-6 剑指offer-栈模拟
作者:互联网
剑指 Offer II 036. 后缀表达式
难度中等根据 逆波兰表示法,求该后缀表达式的计算结果。
有效的算符包括 +
、-
、*
、/
。每个运算对象可以是整数,也可以是另一个逆波兰表达式。
说明:
- 整数除法只保留整数部分。
- 给定逆波兰表达式总是有效的。换句话说,表达式总会得出有效数值且不存在除数为 0 的情况。
1 import java.util.ArrayDeque; 2 import java.util.Stack; 3 4 /* 5 小美开的西点屋举办一周年活动,她准备制作一批礼盒作为对消费者的回馈,每个礼盒中都有三枚西点屋的招牌点心。 6 西点屋共有A和B两种招牌点心,为了让消费者都能品尝到两种点心,因此每个礼盒中都要包含至少一枚A点心和一枚B点心。 7 现在小美的西点屋内共有x枚A点心和y枚B点心,请问小美最多可以制作多少个礼盒。 8 */ 9 class Solution { 10 11 public int evalRPN(String[] tokens) { 12 // Flower Cao啵啵 13 ArrayDeque<Integer> deque=new ArrayDeque<>(); 14 for (String s : tokens) { 15 if ("+".equals(s)) { 16 deque.push(deque.pop() + deque.pop()); 17 } else if ("-".equals(s)) { 18 int a = deque.pop(); 19 int b = deque.pop(); 20 deque.push(b - a); 21 } else if ("*".equals(s)) { 22 deque.push(deque.pop() * deque.pop()); 23 } else if ("/".equals(s)) { 24 int a = deque.pop(); 25 int b = deque.pop(); 26 deque.push(b / a); 27 } else { 28 deque.push(Integer.valueOf(s)); 29 } 30 } 31 return deque.pop(); 32 } 33 public static void main(String[] args) { 34 35 } 36 }
思路:遇到符号计算前两个数字 放入栈中。
标签:deque,offer,int,点心,equals,pop,2022,push,模拟 来源: https://www.cnblogs.com/benbicao/p/16557453.html