当前位置:网站首页>利用“栈”快速计算——逆波兰表达式
利用“栈”快速计算——逆波兰表达式
2022-08-01 23:58:00 【陈亦康】
例题:a b c * + d e * f + g * +
对应数据:1 2 3 * + 4 5 * 6 + 7 * +
分析:(数据处理区为虚拟模块)





此时栈中剩的最后一个元素便是表达式的结果
例题:逆波兰表达式求值

由以上分析,再做此题,就容易多了~ 代码如下:
class Solution {
public int evalRPN(String[] tokens) {
Stack<Integer> stack = new Stack<>();
for(String str : tokens){
if(judgment(str)){
int x = stack.pop();
int y = stack.pop();
switch(str){
case "+":
stack.push(y + x);
break;
case "-":
stack.push(y - x);
break;
case "*":
stack.push(y * x);
break;
case "/":
stack.push(y / x);
break;
}
}
else{
stack.push(Integer.parseInt(str));
}
}
return stack.pop();
}
private boolean judgment(String str){
if(str.equals("+") || str.equals("-") ||
str.equals("*") || str.equals("/")){
return true;
}
else{
return false;
}
}
}
边栏推荐
猜你喜欢
随机推荐
security跨域配置
contentEditable属性
DOM 基础操作
解析正则表达式的底层实现原理
【ACWing】406. 放置机器人
好好活就是做有意义的事,有意义的事就是好好活
零基础如何学习单片机,一位入门者的进阶路径,可参考
Use Jenkins for continuous integration, this knowledge point must be mastered
如何进行数据库备份
Architecture basic concept and nature of architecture
ICLR 2022最佳论文:基于对比消歧的偏标签学习
使用Ganache、web3.js和remix在私有链上部署并调用合约
GetHashCode与Equals
架构基本概念和架构本质
如何重装Win11?一键重装Win11方法
Study Notes: The Return of Machine Learning
Flink学习第五天——Flink可视化控制台依赖配置和界面介绍
一款简洁的文件传输工具
一个有些意思的项目--文件夹对比工具(一)
DVWA靶场环境搭建









