首页/新闻资讯/正文详情

DeepSeek LeetCode 150. 逆波兰表达式求值 Java实现

发布时间:2026/9/25 20:23:07 来源:云帆数科 栏目:资讯中心
DeepSeek    LeetCode 150. 逆波兰表达式求值 Java实现
思路逆波兰表达式后缀表达式的特点是运算符在操作数之后且不需要括号。用栈求解最自然· 遇到数字入栈· 遇到运算符弹出栈顶两个元素做运算把结果压回栈遍历结束后栈里剩下的唯一元素就是答案。代码classSolution{publicintevalRPN(String[]tokens){DequeIntegerstacknewArrayDeque();for(Stringt:tokens){switch(t){case-stack.push(stack.pop()stack.pop());case*-stack.push(stack.pop()*stack.pop());case--{intbstack.pop();intastack.pop();stack.push(a-b);}case/-{intbstack.pop();intastack.pop();stack.push(a/b);}default-stack.push(Integer.parseInt(t));}}returnstack.pop();}}用数组手动模拟栈更快避免装箱classSolution{publicintevalRPN(String[]tokens){int[]stacknewint[tokens.length];inttop-1;for(Stringt:tokens){switch(t){case-stack[--top]stack[top1];// 等价写法见下方说明case--{intbstack[top--];stack[top]-b;}case*-{intbstack[top--];stack[top]*b;}case/-{intbstack[top--];stack[top]/b;}default-stack[top]Integer.parseInt(t);}}returnstack[top];}}如果觉得上面 的写法绕可以直接用最直白的版本intbstack[top--];intastack[top--];stack[top]ab;关键点减法/除法有顺序栈顶是右操作数 b次栈顶是左操作数 a必须算 a - b、a / b写反会得到错误答案或被 0 除。除法向零截断题目要求 6 / -132 0Java 的整数 / 本身就是向零截断直接使用即可不需要额外处理。Java 求值顺序stack.pop() stack.pop() 中 Java 保证从左到右求值先弹出的是右操作数加减乘除这里恰好可交换对 、* 无影响但为可读性建议还是显式写。示例走一遍tokens [“2”,“1”,“”,“3”,“*”]token 操作 栈底→顶2 入栈 [2]1 入栈 [2, 1]123 [3]3 入栈 [3, 3]3*39 [9]结果 9即 (21)*3。复杂度· 时间O(n)每个 token 处理一次· 空间O(n)栈最多存 n 个元素易错点· 忘记负数“-11” 用 Integer.parseInt 能正确解析不要自己手动按字符判断符号。· 用 switch 判断字符串时不要用 这里的 switch 用的是 equals 语义是安全的。

相关推荐

意料之中.Net12真要移除mono运行时
意料之中.Net12真要移除mono运行时

大家好,我是搬砖工呀。 我们这几天还在回顾**.Net11的性能改进,昨天晚上刚刚RC1,马上就正式版了。官方这时候也开始规划下一版本即.Net12**的开发内容了。 然后,昨天翻官方仓库runtimes,赫然看到如下Epicmono其实对.Ne… · 2026/9/25 20:23:00

云克隆 Luminex 多因子检测试剂盒赋能血管内皮损伤多靶标联合研究
云克隆 Luminex 多因子检测试剂盒赋能血管内皮损伤多靶标联合研究

摘要:血管内皮细胞损伤、屏障通透性异常是炎症、脓毒症、血管病变、肿瘤转移的核心始动环节。ANGPT1、ANGPT2、ESM1、ICAM2、SDC1、VCAM1 分别覆盖血管稳定性调控因子、内皮特异性分泌分子、内皮粘附分子、糖萼脱落标志物,共同勾勒内皮激活、屏障破坏的分… · 2026/9/25 20:23:00

在Linux服务器上通过虚拟机安装操作系统 openEuler 24.03LTS
在Linux服务器上通过虚拟机安装操作系统 openEuler 24.03LTS

一.如何选择虚拟机方案 在 Linux 平台上,有几种主流选择,各有侧重: KVM (推荐):Linux 内核原生支持的虚拟化方案,性能接近物理机, openEuler系统本身也深度集成了 KVM,若你后续要在 openEuler 中再建虚拟机… · 2026/9/25 20:22:54

MFC 界面老旧怎么升级?BCGControlBar Pro 适配 Visual Studio 2026 主题教程
MFC 界面老旧怎么升级?BCGControlBar Pro 适配 Visual Studio 2026 主题教程

一套运行多年的CAD、测量检测或设备调试软件,核心算法和业务流程仍然稳定,但工具栏、停靠窗口、标签页和属性网格看起来却像来自不同年代。开发团队即使已经换用新的Visual Studio编译环境,也会发现:开发工具升级了,软… · 2026/9/25 20:45:45

MySQL 迁移 GaussDB 实战:DRS 在线迁移与手动离线迁移全攻略
MySQL 迁移 GaussDB 实战:DRS 在线迁移与手动离线迁移全攻略

1. 背景 随着国产数据库的普及,越来越多的企业将业务从 MySQL 迁移到华为云 GaussDB。迁移过程中,如何保证数据一致性、缩短停机时间、处理语法兼容性,是每个 DBA 和开发人员必须面对的问题。 本文将介绍两种主流的迁移方案: 方案… · 2026/9/25 20:45:38

DC-Pi:PLC、HMI与AI在实时Linux内核中的深度融合
DC-Pi:PLC、HMI与AI在实时Linux内核中的深度融合

1. 这不是“加个AI模块”那么简单:DC-Pi的融合逻辑到底在解决什么真问题?工业控制现场,我见过太多“AI”的PPT项目——在PLC柜子旁边加一台工控机跑TensorFlow,用USB线连着HMI屏做“智能告警”,最后发现模型推理延迟比… · 2026/9/25 20:45:38

模方枪战小游戏
模方枪战小游戏

游戏介绍《模方枪战》是一款HTML5 Canvas 制作的俯视角弹幕射击小游戏,无需下载,浏览器直接运行,同时完美适配电脑鼠标键盘与手机触屏操作,主打萌系画风 爽快生存射击,一局快节奏适合碎片时间游玩。游戏核心特色1. 丰… · 2026/9/25 20:45:32

StemDeck人声拆分深度指南:主唱与和声分离方法、UVR-MDX-NET模型选型与开源许可避坑
StemDeck人声拆分深度指南:主唱与和声分离方法、UVR-MDX-NET模型选型与开源许可避坑

StemDeck人声拆分深度指南:主唱与和声分离方法、UVR-MDX-NET模型选型与开源许可避坑 【免费下载链接】stemdeck Stemdeck is an modern stem extraction platform for musicians,producers and hobbyists, designed to isolate vocals, drums, bass, piano and guit… · 2026/9/25 20:45:32

Linux内核架构与实战:从五大子系统到调试技巧全解析
Linux内核架构与实战:从五大子系统到调试技巧全解析

1. 宏观架构:把Linux内核当成一台“资源管家”来看1.1 宏内核与微内核之争,Linux为什么坚持“大而全”先搞清楚一个基本问题:Linux内核属于哪一类设计。业界把操作系统内核粗分为宏内核(Monolithic Kernel)和微内核&am… · 2026/9/25 20:45:26

数值优化(Numerical Optimization)学习系列-03-共轭梯度方法(Conjugate Gradient)
数值优化(Numerical Optimization)学习系列-03-共轭梯度方法(Conjugate Gradient)

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 1:00:31

创维E900V22D刷机全攻略:S905L3SB芯片兼容性解析与救砖实战
创维E900V22D刷机全攻略:S905L3SB芯片兼容性解析与救砖实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 1:00:31

MQTT协议原理与Broker服务器搭建实战:从Mosquitto到EMQX
MQTT协议原理与Broker服务器搭建实战:从Mosquitto到EMQX

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 1:00:37

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码