当前位置: 首页 > news >正文

力扣150. 逆波兰表达式求值

在这里插入图片描述
思路:又是有消消乐的感觉,只不过这里是遇到一个操作符号,就消掉两个数字合并成一个新数;所以想到用栈结构来处理;用一个栈来放当前遍历过的数字,当遍历遇到操作符时,就把前面最新入栈的两个数取出来操作,操作完的结果再放回栈内。最后栈内只剩下一个值就是最终的计算结果


class Solution {public int evalRPN(String[] tokens) {Stack<Integer> stack = new Stack();for(String str : tokens){//如果不是操作符号,就把当前数字入栈,等待被取出操作if(!"+".equals(str) && !"-".equals(str) && !"*".equals(str) && !"/".equals(str)){stack.push(Integer.valueOf(str));}//如果遇到操作符号,就把前面入栈的两个数取出来操作,操作完的结果再放回栈内else {int num1 = stack.pop();int num2 = stack.pop();int pushNum = 0;//看例子,num1,num2先后顺序理解一下先;num1是后入栈的,所以放在操作号后面if("+".equals(str)) {pushNum = num2 + num1;}else if("-".equals(str)){pushNum = num2 - num1;}else if("*".equals(str)){pushNum = num2 * num1;}else if("/".equals(str)){pushNum = num2 / num1;}//操作完的结果再放回栈内stack.push(pushNum);}}//最后栈内只剩下一个值就是最终的计算结果return stack.pop();}
}
http://www.lryc.cn/news/331353.html

相关文章:

  • hololens 2 投屏 报错
  • 初次在 GitHub 建立仓库以及公开代码的流程 - 公开代码
  • 论文笔记 - :MonoLSS: Learnable Sample Selection For Monocular 3D Detection
  • LVS、HAProxy
  • 开发环境->生产环境
  • 基于AI智能识别技术的智慧展览馆视频监管方案设计
  • Leetcode-894-所有可能的真二叉树-c++
  • Django DRF视图
  • SQLite全文搜索引擎:实现原理、应用实践和版本差异
  • day17-二叉树part04
  • 书生浦语第一次课
  • UE小:UE5.3无法创建C++工程
  • FFmpeg获取视频详情
  • find: paths must precede expression
  • RabbitMQ3.x之九_Docker中安装RabbitMQ
  • vue快速入门(四)v-html
  • 第19次修改了可删除可持久保存的前端html备忘录:换了一个特别的倒计时时钟
  • C++ 2024-4-1 作业
  • 【滑动窗口】Leetcode 串联所有单词的子串
  • golang channel实践代码及注意事项
  • 面试题:RabbitMQ 消息队列中间件
  • wpf中引用自定义字体
  • 高效准确!指甲剪盖片视觉检测技术解密
  • 分布式IO模块PLC扩展模拟量模块
  • Qt事件系统
  • C++STL--排序算法
  • CEF的了解
  • 基于OrangePi Zero2的智能家居项目(开发阶段)
  • 数据结构记录
  • 从零到一:基于 K3s 快速搭建本地化 kubeflow AI 机器学习平台