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

力扣 LeetCode 150. 逆波兰表达式求值(Day5:栈与队列)

解题思路:

逆波兰表达式就是从二叉树的后序遍历得来的(左右根),因此计算机直接按顺序取出表达式中元素进行运算即可,无需考虑括号的运算顺序,加快运算速度

对于(1+2)x(3+4)会表示为1 2 + 3 4 + x

注意:

1. Deque中的泛型应该是Integer而不是String,整个运算过程中,只有int类型的数字才放入过栈中,全程没有放入String类型的运算符号

2. 对于字符串的比较,应该使用 equals() 方法

3. 第一个 pop() 出的值是 num2 而不是 num1 ,因为1 2 放入栈中后为 2 1,在栈顶的数值是2,而正确的运算顺序是先1后2

4. 给定的是 String[] ,逐一将数字放入栈中时,需要使用 Integer.parseInt() 方法转化成 int 类型

(使用 Integer.valueOf() 方法转化成 Integer 包装类型也可以)

class Solution {
    public int evalRPN(String[] tokens) {
        Deque<Integer> stack = new ArrayDeque<>();
        for (String s : tokens) {
            if (s.equals("+") || s.equals("-") || s.equals("*") || s.equals("/")) {
                int num2 = stack.pop();
                int num1 = stack.pop();
                if (s.equals("+")) stack.push(num1 + num2);
                else if (s.equals("-")) stack.push(num1 - num2);
                else if (s.equals("*")) stack.push(num1 * num2);
                else if (s.equals("/")) stack.push(num1 / num2);
            } else {
                stack.push(Integer.parseInt(s));
            }
        }
        return stack.pop();
    }
}


http://www.kler.cn/a/396565.html

相关文章:

  • @Autowired 和 @Resource思考(注入redisTemplate时发现一些奇怪的现象)
  • @Autowired和@Resource的区别
  • Android Settings 单元测试 | 如何运行单元测试?
  • 政务数据治理专栏开搞!
  • [Admin] Dashboard Filter for Mix Report Types
  • 精华帖分享|浅谈金融时间序列分析与股价随机游走
  • 第 6 章 - Go 语言 运算符
  • MacOS下,如何在Safari浏览器中打开或关闭页面中的图片文字翻译功能
  • 【Python爬虫实战】轻量级爬虫利器:DrissionPage之SessionPage与WebPage模块详解
  • c++中,头文件包含iostream.h和`<iostream>`的差别
  • 【Flink】-- flink新版本发布:v2.0-preview1
  • Ubuntu24.04 network:0 unclaimed wireless adapter no found
  • DAY110代码审计-PHP框架开发篇ThinkPHP版本缺陷不安全写法路由访问利用链
  • 鸿蒙next 应用重启方案
  • fast-api后端 + fetch 前端流式文字响应
  • Spring Cloud 使用 Nacos 注册中心
  • 从基础到进阶,Dockerfile 如何使用环境变量
  • stm32在linux环境下的开发与调试
  • nacos-operator在k8s集群上部署nacos-server2.4.3版本踩坑实录
  • 数据结构 -- 二叉搜索树
  • 十一:HTTP 状态码详解:解读每一个响应背后的意义
  • 【论文复现】图像风格迁移技术
  • 新手教学系列——善用 VSCode 工作区,让开发更高效
  • 自定义实体类中DateTime属性的序列化格式
  • CSP-X2024山东小学组T2:消灭怪兽
  • IO流实用案例:用字节流--输入流(Inpustream)、输出流(OutputStream)写一个拷贝图片的案例--超简单!