当前位置:网站首页>力扣150-逆波兰表达式求值——栈实现
力扣150-逆波兰表达式求值——栈实现
2022-08-10 19:01:00 【张怼怼√】
题目描述
根据 逆波兰表示法,求表达式的值。
有效的算符包括 +、-、*、/ 。每个运算对象可以是整数,也可以是另一个逆波兰表达式。
注意 两个整数之间的除法只保留整数部分。
可以保证给定的逆波兰表达式总是有效的。换句话说,表达式总会得出有效数值且不存在除数为 0 的情况。
求解思路
还是放一张卡哥的动态图:

- 发现如果遇到 +、-、*、/ 这几个运算符,我们一般是将这个运算符的前面两个数组进行运算,这可以考虑成栈操作,如图所示;
- 代码实现也非常简单,不过需要注意 +、-、*、/ 这些要用双引号,不要用单引号,因为他是与字符串s作比较,并不是字符,我在这个地方出现了一些错误;
- 运算完最后栈中肯定只有一个元素,将它pop或者peek都可以。
输入输出示例

代码
class Solution {
public int evalRPN(String[] tokens) {
Deque<Integer> deque = new LinkedList<>();
for(String s : tokens){
if(s.equals("+") || s.equals("-") || s.equals("*") || s.equals("/")){
int p1 = deque.pop();
int p2 = deque.pop();
if(s.equals("+")) deque.push(p1 + p2);
if(s.equals("-")) deque.push(p2 - p1);
if(s.equals("*")) deque.push(p1 * p2);
if(s.equals("/")) deque.push(p2 / p1);
}else deque.push(Integer.valueOf(s));
}
return deque.pop();
}
}边栏推荐
猜你喜欢

Consul简介和安装

Redis command---key chapter (super complete)

Consul Introduction and Installation

常量

Keras deep learning combat (17) - image segmentation using U-Net architecture

【自然语言处理】【向量表示】PairSupCon:用于句子表示的成对监督对比学习
我们用48h,合作创造了一款Web游戏:Dice Crush,参加国际赛事

入门:人脸专集2 | 人脸关键点检测汇总(文末有相关文章链接)

基于TCP的聊天系统

『牛客|每日一题』岛屿数量
随机推荐
#yyds干货盘点# 面试必刷TOP101:二分查找-I
QoS Quality of Service Seven Switch Congestion Management
CAS:190598-55-1_Biotin sulfo-N-hydroxysuccinimide ester生物素化试
905. 区间选点(贪心)
网站架构探测&chrome插件用于信息收集
shell运算详解,看这一篇就够了!
【无标题】基于Huffman和LZ77的GZIP压缩
Major upgrade of MSE Governance Center - Traffic Governance, Database Governance, Same AZ Priority
Optimizing Bloom Filter: Challenges, Solutions, and Comparisons论文总结
【OpenCV】-物体的凸包
IoU、GIoU、DIoU、CIoU四种损失函数总结
Optimization is a habit The starting point is to 'stand close to the critical'
Win11连接投影仪没反应怎么解决?
MSE 治理中心重磅升级-流量治理、数据库治理、同 AZ 优先
搭建自己的以图搜图系统 (一):10 行代码搞定以图搜图
7-2 乒乓人训练大师(双指针)
Introduction to 3 d games beginners essential 】 【 modeling knowledge
面试题 04.12. 求和路径-dfs+辅助数组法
PG中的Index-Only Scans解密
set和map使用讲解