2024.1.22(150. 逆波兰表达式求值)

news2024/11/16 3:40:56

2024.1.22(150. 逆波兰表达式求值)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
相信看完动画大家应该知道,这和1047. 删除字符串中的所有相邻重复项是差不错的,只不过本题不要相邻元素做消除了,而是做运算!
在这里插入图片描述
// 定义一个Solution类
class Solution {
// 定义一个公共方法evalRPN,用于计算逆波兰表示法的表达式的值
public int evalRPN(String[] tokens) {
Deque stack = new LinkedList<>(); // 创建一个双端队列来模拟栈操作

    // 遍历tokens数组中的每个元素  
    for (String s : tokens) {  
        // 如果当前元素是"+",则从栈中弹出两个元素并相加,然后将结果推回栈中  
        if ("+".equals(s)) {  // 注意:由于LeetCode环境内置的JDK版本问题,不能使用==来判断字符串是否相等  
            stack.push(stack.pop() + stack.pop());  // 注意:这里的-和/需要特殊处理  
        // 如果当前元素是"-",则从栈中弹出两个元素并相减,然后将结果推回栈中  
        } else if ("-".equals(s)) {  
            stack.push(-stack.pop() + stack.pop());  
        // 如果当前元素是"*",则从栈中弹出两个元素并相乘,然后将结果推回栈中  
        } else if ("*".equals(s)) {  
            stack.push(stack.pop() * stack.pop());  
        // 如果当前元素是"/",则从栈中弹出两个元素并相除,然后将结果推回栈中  
        } else if ("/".equals(s)) {  
            int temp1 = stack.pop();  // 弹出第二个元素作为除数  
            int temp2 = stack.pop();  // 弹出第一个元素作为被除数  
            stack.push(temp2 / temp1);  // 将结果推回栈中  
        // 如果当前元素不是运算符,则将其转换为整数并推入栈中  
        } else {  
            stack.push(Integer.valueOf(s));  // 将字符串转换为整数并推入栈中  
        }  
    }  
    // 返回栈顶的元素,即整个表达式的计算结果  
    return stack.pop();  
}  

}
这段代码使用一个双端队列(Deque)来模拟栈操作。它遍历输入的tokens数组中的每个元素,根据元素的类型执行相应的操作。如果元素是运算符,则从栈中弹出两个元素进行相应的运算;如果元素是数字,则将其转换为整数并推入栈中。最后,返回栈顶的元素作为整个表达式的计算结果。
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1403684.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

GoZero微服务个人探究之路(八)-[mysql数据库]如何拓展由goctl生成的model代码里的方法

前言 goctl生成的方法只有四个&#xff1a; insert&#xff0c;update&#xff0c;findone&#xff0c;delete&#xff0c; 事实上很多时候这是不够用的&#xff0c;同时生成的这四个方法也很简单&#xff0c;业务逻辑一复杂就做不了了&#xff0c;需要我们自己去实现自己想…

esp32-idf eclipse 分区表(partition table / NVS)的读写demo

前言&#xff1a; 分区表&#xff08;Partition Table&#xff09;和 NVS&#xff08;Non-Volatile Storage&#xff09;是 ESP-IDF 中用于存储数据的两种不同机制。 分区表&#xff08;Partition Table&#xff09;&#xff1a; 分区表定义了将 Flash 存储器划分为不同逻辑分…

Hugo使用且部署GitHubPages

hugo的使用 20201121 Hugo是由Go语言实现的静态网站生成器。简单、易用、高效、易扩展、快速部署。 安装Hugo 0.windows安装(releases) 下载地址&#xff1a;https://github.com/spf13/hugo/releases。 配置环境变量 验证测试是否安装成功 hugo help1. 二进制安装&#xf…

提升认知,推荐15个面向开发者的中文播客

前言 对于科技从业者而言&#xff0c;无论是自学成才的程序员&#xff0c;还是行业资深人士&#xff0c;终身学习是很有必要的&#xff0c;尤其是在这样一个技术快速迭代更新的时代。 作为一个摆脱了时间和空间限制的资讯分享平台&#xff0c;播客&#xff08;Podcast&#x…

【算法练习Day51】柱状图中最大的矩形

​&#x1f4dd;个人主页&#xff1a;Sherry的成长之路 &#x1f3e0;学习社区&#xff1a;Sherry的成长之路&#xff08;个人社区&#xff09; &#x1f4d6;专栏链接&#xff1a;练题 &#x1f3af;长路漫漫浩浩&#xff0c;万事皆有期待 文章目录 柱状图中最大的矩形思路动态…

Android学习之路(22) 从模块化到组件化

从模块化到组件化 一、从模块化到组件化 Android 应用项目 , 都存在一个应用模块 ( Application Module ) , 在 build.gradle 构建脚本中 , 第一个插件配置 com.android.application , 表明 该 Module 编译打包后的输出是 APK 安装包 ; 该项目可以直接运行 ; plugins {id co…

第14章_集合与数据结构拓展练习(前序、中序、后序遍历,线性结构,单向链表构建,单向链表及其反转,字符串压缩)

文章目录 第14章_集合与数据结构拓展练习选择填空题1、前序、中序、后序遍历2、线性结构3、其它 编程题4、单向链表构建5、单向链表及其反转6、字符串压缩 第14章_集合与数据结构拓展练习 选择填空题 1、前序、中序、后序遍历 分析&#xff1a; 完全二叉树&#xff1a; 叶结点…

灰度图像的自动阈值分割

第一种&#xff1a;Otsu &#xff08;大津法&#xff09; 一、基于cv2的API调用 1、代码实现 直接给出相关代码&#xff1a; import cv2 import matplotlib.pylab as pltpath r"D:\Desktop\00aa\1.png" img cv2.imread(path, 0)def main2():ret, thresh1 cv2.…

赢领时代,蓝带启航,蓝带啤酒2024年会圆满成功,共绘宏伟蓝图

2024年1月14日&#xff0c;泰国普吉岛&#xff0c;由蓝带啤酒股份公司主办的“涅槃新蓝带、赢领新未来”2024年核心团队年会在普吉岛艾美海滩度假酒店盛大举行&#xff0c;来自全国各地的蓝带营销菁英、核心团队以及合伙人等九十多位代表汇聚一堂&#xff0c;共同见证并分享公司…

[python题解13】只出现一个数字。给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。

1. 题目&#xff1a;只出现一个数字 给定一个非空整数数组&#xff0c;除了某个元素只出现一次以外&#xff0c;其余每个元素均出现两次。找出那个只出现了一次的元素。 输入样例: [2,2,1] 输出样例: 1 2. 使用set去重然后相减即可得到答案&#xff1b;使用异或也可 3. 源…

Next-GPT: Any-to-Any Multimodal LLM

Next-GPT: Any-to-Any Multimodal LLM 最近在调研一些多模态大模型相关的论文&#xff0c;发现Arxiv上出的论文根本看不过来&#xff0c;遂决定开辟一个新坑《一页PPT说清一篇论文》。自己在读论文的过程中会用一页PPT梳理其脉络和重点信息&#xff0c;旨在帮助自己和读者快速了…

python批量复制图片到execl并指定图片的大小

工作需要需要复制批量图片到execl&#xff0c;并指定大小&#xff0c;这里简单实现一下&#xff0c;使用xlwings库来实现总体来说是比较简单的&#xff0c;这里简单记录一下 import xlwings as xw import os# 创建一个可见的Excel应用程序对象 app xw.App(visibleTrue)# 打开…

【webrtc】neteq测试工程

设置git代理 $ git config --global http.https://github.com.proxy socks5://127.0.0.1:7890 git config --global https.https://github.com.proxy socks5://127.0.0.1:7890导入cmake直接构建 win32 debug v143 编译opus Build started...

高可用负载均衡搭建

高可用负载均衡搭建 主机名服务IPnginx-ka-master172.17.1.131nginx-ka-backup172.17.1.132web1-server172.17.1.133web2-server172.17.1.134VIP172.17.1.88 1、安装nginx和keepalived服务 roothaproxy-master:~# apt install keepalived haproxy -y2、配置keepalived服务 …

MySQL深度分页优化

MySQL深度分页问题 我们日常做分页需求时&#xff0c;一般会用limit实现&#xff0c;但是当偏移量特别大的时候&#xff0c;查询效率就变得低下。本文将分四个方案&#xff0c;讨论如何优化MySQL百万数据的深分页问题&#xff0c;并附上最近优化生产慢SQL的实战案例。 limit深…

RAMROM

RAM&#xff08;Random Access Memory&#xff09;&#xff0c;随机存取存储器&#xff0c;也叫主存&#xff0c;又称内存&#xff08;动态ROM&#xff09;&#xff0c;是与CPU直接交换数据的内部存储器。它可以随时读写&#xff08;刷新时除外&#xff09;&#xff0c;而且速度…

【test】ubuntu系统盘制作

u盘&#xff1a;16G 系统&#xff1a;win11 工具&#xff1a;rufus 镜像版本:ubuntu20.04 Rufus 是一款格式化和创建 USB 启动盘的辅助工具。 本软件适用于以下场景&#xff1a; 需要将可引导 ISO (Windows、Linux、UEFI 等) 刻录到 USB 安装媒介的情况 需要处理未安装操作系统…

[imx6][Linux4.9]IMX6平台 pinctrl子系统

文章目录 1、Pinctrl 子系统1.1、Pinctrl 子系统的作用1.2、设备树中PIN的配置信息1.2、设备树中PIN的配置信息中的复用信息解析1.3、PINCTRL子系统驱动 主控芯片硬件开发板内核版本imx6100ask_imx6ullLinux-4.9.88 1、Pinctrl 子系统 1.1、Pinctrl 子系统的作用 获取设备树…

论文阅读_tinyllama_轻量级大模型

英文名称: TinyLlama: An Open-Source Small Language Model中文名称: TinyLlama: 一个开源的小型语言模型链接: http://arxiv.org/abs/2401.02385v1代码: https://github.com/jzhang38/TinyLlama作者: Peiyuan Zhang, Guangtao Zeng, Tianduo Wang, Wei Lu机构: 新加坡科技与设…

数据库(银行数据库表构建)

题目&#xff1a; 通过所提供的E-R图和数据库模型图完成库表的创建&#xff0c;并插入适量的数据.要求必须使用SQL命令进行构建。 表1 UserInfo **建表** CREATE TABLE USERINFO (customerID INT AUTO_INCREMENT COMMENT 客户编号,customerName CHAR(50) CHARACTER SET utf8mb…