150. 逆波兰表达式求值

150. Evaluate Reverse Polish Notation

题目描述

根据逆波兰表示法,求表达式的值。

有效的运算符包括 +, -, *, /。每个运算对象可以是整数,也可以是另一个逆波兰表达式。

说明:

  • 整数除法只保留整数部分。
  • 给定逆波兰表达式总是有效的。换句话说,表达式总会得出有效数值且不存在除数为 0 的情况。

每日一算法2019/5/27Day 24LeetCode150. Evaluate Reverse Polish Notation

示例 1:

输入: ["2", "1", "+", "3", "\*"]
输出: 9
解释: ((2 + 1) \* 3) = 9

示例 2:

输入: ["4", "13", "5", "/", "+"]
输出: 6
解释: (4 + (13 / 5)) = 6

示例 3:

输入: ["10", "6", "9", "3", "+", "-11", "\*", "/", "\*", "17", "+", "5", "+"]
输出: 22
解释:
((10 \* (6 / ((9 + 3) \* -11))) + 17) + 5
= ((10 \* (6 / (12 \* -11))) + 17) + 5
= ((10 \* (6 / -132)) + 17) + 5
= ((10 \* 0) + 17) + 5
= (0 + 17) + 5
= 17 + 5
= 22

Java 实现

import java.util.Stack;

class Solution {
public int evalRPN(String[] tokens) {
Stack<Integer> stack = new Stack<>();
int a, b;
for (String str : tokens) {
switch (str) {
case "+":
a = stack.pop();
b = stack.pop();
stack.push(b + a);
break;
case "-":
a = stack.pop();
b = stack.pop();
stack.push(b - a);
break;
case "*":
a = stack.pop();
b = stack.pop();
stack.push(b * a);
break;
case "/":
a = stack.pop();
b = stack.pop();
stack.push(b / a);
break;
default:
stack.push(Integer.valueOf(str));
break;
}
}
return stack.pop();
}
}

相似题目

参考资料

最新文章

  1. jQuery用户数字评分效果
  2. linux编程问题记录
  3. 如何在施工物料管理Web系统中处理大量数据并显示
  4. noip模拟赛(一)密码
  5. Bug修复问题
  6. poj2017
  7. uva 991
  8. JS实现各种页面的刷新
  9. 09.25日记(2014年9月25日23:22:06)用java这么多年面向对象我真的懂了吗,测试先行理念会玩吗
  10. Zookeeper+Kafka+Storm+HDFS实践
  11. VSTO学习笔记(十四)Excel数据透视表与PowerPivot
  12. 前端安全之XSS攻击及防御
  13. 首届.NET Core开源峰会
  14. js性能的进阶
  15. codeforces263B
  16. docker启动后忘记挂载nvidia-docker-volume的解决方法
  17. cisco PBR
  18. Go并发编程之美-CAS操作
  19. BZOJ4714 : 旋转排列
  20. 学习笔记之HTML 教程 | 菜鸟教程

热门文章

  1. 优化mybatis框架中的查询用户记录数的案例
  2. ccf算法模板
  3. SpringBoot使用thymeleaf案例
  4. 全局异常捕获处理-@ControllerAdvice+@HandleException
  5. 【洛谷P5158】 【模板】多项式快速插值
  6. a list of frequently asked questions about Circus
  7. Android Studio3.0的下载及其安装详解加eclipse下载安装配置jdk9
  8. GoCN每日新闻(2019-10-26)
  9. mysql tan() 函数
  10. 刷题3:给定一个数组 nums,判断 nums 中是否存在三个下标 a,b,c数相加等于targe且a,b,c不相等