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

力扣:逆波兰表达式

根据逆波兰表示法,求表达式的值。
有效的运算符包括 +, -, *, / 。每个运算对象可以是整数,也可以是另一个逆波兰表达式。
说明:

整数除法只保留整数部分。
给定逆波兰表达式总是有效的。换句话说,表达式总会得出有效数值且不存在除数为 0 的情况。
示例 1:

输入: ["2", "1", "+", "3", "*"]
输出: 9
解释: ((2 + 1) * 3) = 9

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/evaluate-reverse-polish-notation

#include"lk.h" using namespace std; //通过流的概念实现字符串数字之间的转换 int str2num(string s) { int num; stringstream ss(s); ss >> num; return num; } int evalRPN(vector<string>& tokens) { vector<int> num; vector<string>cum; //把可变数组直接当成栈 for (int i = 0; i < (int)tokens.size(); ++i) { if (tokens[i] == "+") { int a = num[num.size() - 1]; num.pop_back(); int b = num[num.size() - 1]; num.pop_back(); num.push_back(a + b); } else if (tokens[i] == "-") { int a = num[num.size() - 1]; num.pop_back(); int b = num[num.size() - 1]; num.pop_back(); num.push_back(b-a); } else if (tokens[i] == "*") { int a = num[num.size() - 1]; num.pop_back(); int b = num[num.size() - 1]; num.pop_back(); num.push_back(a * b); } else if( tokens[i] == "/") { int a = num[num.size() - 1]; num.pop_back(); int b = num[num.size() - 1]; num.pop_back(); num.push_back(b / a); } else { num.push_back(str2num(tokens[i])); } } //还是从第一个开始排序 return num[0]; } int main() { vector<string>arr = { "4","3","-" }; cout<<evalRPN(arr); return 0; }

没有什么难度,只要想到一个运算符对应两个操作数就行。
两个思路,一个是暴力运算,单纯的检测运算符上面有两个操作数,然后一个个求解。
另一个就是栈或者vector的可变长度数组都可以。


http://www.jsqmd.com/news/1281486/

相关文章:

  • AI如何优化学术写作:文献梳理与术语校验实战
  • Java雷坑整理(2)
  • 告别手忙脚乱!这款FF14智能钓鱼辅助工具让你轻松成为钓鱼大师
  • 基于行空板扩展板的智能家居中控系统:从硬件设计到软件实现
  • 【Bug已解决】vllm process crashed because of dp coordinator receives unexpected message... 解决方案
  • BKA-CNN-LSTM多变量回归预测模型解析与Matlab实现
  • bq2415x评估模块实战:从开关电源原理到锂电充电设计避坑指南
  • 高级游戏自动化引擎架构设计:基于MaaFramework的《重返未来:1999》自动化助手深度解析
  • 宁波包包回收有无隐形收费,上门鉴定估价不收取额外费用 - 好物测评局
  • JAVA计算机毕设之基于 SpringBoot+Vue 的高校学生线上互助答疑与学习资料共享平台 数字化校园学习互助社区与教学资源管理系统(完整前后端代码+说明文档+LW,调试定制等)
  • ChatBI上线前必答的合规清单:权限、审计与敏感数据边界
  • Hibernate关联关系(一对多)
  • LabVIEW 做交流氩弧焊弧压跟踪,3 种方案实测对比
  • 凭据管理10条安全红线:这些错千万别犯
  • 高效能人士的10个偷懒技巧:系统化思维与时间管理
  • 开源项目维护避坑指南:Issue 管理、Breaking Change 与社区关系的平衡
  • 七层路由的艺术:Envoy 的 HTTP 路由、重试与限流策略
  • JAVA计算机毕设之基于SpringBoot+Vue的校园共享单车信息化运维管理系统 校园共享单车故障上报与车辆调度管理系统(完整前后端代码+说明文档+LW,调试定制等)
  • 2026年8月青岛资质齐全的刑事辩护律师推荐,李坤经验丰富服务好,专业可靠口碑好 - 十大排行榜推荐
  • 伊利亚·苏茨克维尔的安全超级智能公司与英伟达合作推进AI研究
  • NBM7100A与PIC18LF4685在低功耗物联网设备中的优化实践
  • 三步搞定Windows和Office永久激活的终极解决方案
  • NBM7100A与STM32G431RB优化低功耗物联网设备电池寿命
  • .NET构建发布演进:从MSBuild到现代化流水线
  • OpenRGB终极指南:一站式免费开源RGB灯光控制软件
  • 数据通信基础(一)
  • Java调Python脚本实时输出print信息
  • 如何3步搞定B站评论数据分析:这个自动化工具让你轻松获取完整用户互动数据
  • 提交本地项目到码云报错
  • 【Bug已解决】Gemma 4 12B is not working 解决方案