LeetCode 150. 逆波兰表达式求值(Evaluate Reverse Polish Notation) 24
2024-10-21 06:19:54
150. 逆波兰表达式求值
150. Evaluate Reverse Polish Notation
题目描述
根据逆波兰表示法,求表达式的值。
有效的运算符包括 +, -, *, /。每个运算对象可以是整数,也可以是另一个逆波兰表达式。
说明:
- 整数除法只保留整数部分。
- 给定逆波兰表达式总是有效的。换句话说,表达式总会得出有效数值且不存在除数为 0 的情况。
每日一算法2019/5/27Day 24LeetCode150. Evaluate Reverse Polish Notation
示例 1:
输入: ["2", "1", "+", "3", "\*"]
输出: 9
解释: ((2 + 1) \* 3) = 9
输出: 9
解释: ((2 + 1) \* 3) = 9
示例 2:
输入: ["4", "13", "5", "/", "+"]
输出: 6
解释: (4 + (13 / 5)) = 6
输出: 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
输出: 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();
}
}
相似题目
参考资料
- https://leetcode.com/problems/evaluate-reverse-polish-notation/
- https://leetcode-cn.com/problems/evaluate-reverse-polish-notation/
最新文章
- jQuery用户数字评分效果
- linux编程问题记录
- 如何在施工物料管理Web系统中处理大量数据并显示
- noip模拟赛(一)密码
- Bug修复问题
- poj2017
- uva 991
- JS实现各种页面的刷新
- 09.25日记(2014年9月25日23:22:06)用java这么多年面向对象我真的懂了吗,测试先行理念会玩吗
- Zookeeper+Kafka+Storm+HDFS实践
- VSTO学习笔记(十四)Excel数据透视表与PowerPivot
- 前端安全之XSS攻击及防御
- 首届.NET Core开源峰会
- js性能的进阶
- codeforces263B
- docker启动后忘记挂载nvidia-docker-volume的解决方法
- cisco PBR
- Go并发编程之美-CAS操作
- BZOJ4714 : 旋转排列
- 学习笔记之HTML 教程 | 菜鸟教程
热门文章
- 优化mybatis框架中的查询用户记录数的案例
- ccf算法模板
- SpringBoot使用thymeleaf案例
- 全局异常捕获处理-@ControllerAdvice+@HandleException
- 【洛谷P5158】 【模板】多项式快速插值
- a list of frequently asked questions about Circus
- Android Studio3.0的下载及其安装详解加eclipse下载安装配置jdk9
- GoCN每日新闻(2019-10-26)
- mysql tan() 函数
- 刷题3:给定一个数组 nums,判断 nums 中是否存在三个下标 a,b,c数相加等于targe且a,b,c不相等