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

华为OD技术一面手撕题

150. 逆波兰表达式求值 来自leecode

给你一个字符串数组 tokens ,表示一个根据 逆波兰表示法 表示的算术表达式。

请你计算该表达式。返回一个表示表达式值的整数。

注意:

  • 有效的算符为 '+''-''*' 和 '/' 。
  • 每个操作数(运算对象)都可以是一个整数或者另一个表达式。
  • 两个整数之间的除法总是 向零截断 。
  • 表达式中不含除零运算。
  • 输入是一个根据逆波兰表示法表示的算术表达式。
  • 答案及所有中间计算结果可以用 32 位 整数表示。

示例 1:

输入:tokens = ["2","1","+","3","*"]
输出:9
解释:该算式转化为常见的中缀算术表达式为:((2 + 1) * 3) = 9

示例 2:

输入:tokens = ["4","13","5","/","+"]
输出:6
解释:该算式转化为常见的中缀算术表达式为:(4 + (13 / 5)) = 6

示例 3:

输入:tokens = ["10","6","9","3","+","-11","*","/","*","17","+","5","+"]
输出:22
解释:该算式转化为常见的中缀算术表达式为:((10 * (6 / ((9 + 3) * -11))) + 17) + 5
= ((10 * (6 / (12 * -11))) + 17) + 5
= ((10 * (6 / -132)) + 17) + 5
= ((10 * 0) + 17) + 5
= (0 + 17) + 5
= 17 + 5
= 22
func evalRPN(tokens []string) int {myStack := make([]int, 0)for _, token := range tokens {if num, err := strconv.Atoi(token); err == nil {myStack = append(myStack, num)} else {numi := myStack[len(myStack)-1]numj := myStack[len(myStack)-2]numItem := 0if token == "+" {numItem = numi + numj} else if token == "-" {numItem = numj - numi} else if token == "*" {numItem = numj * numi} else if token == "/" {numItem = numj / numi}myStack = myStack[:len(myStack)-2]myStack = append(myStack, numItem)}}return myStack[0]
}

这道题主要还是用到了栈的处理方法

http://www.lryc.cn/news/481423.html

相关文章:

  • Qt低版本多网卡组播bug
  • Leetcode:540. 有序数组中的单一元素
  • Python数据分析NumPy和pandas(二十七、数据可视化 matplotlib API 入门)
  • 数组指针和指针的区别
  • Linux git-bash配置
  • 【后端速成Vue】computed计算属性
  • 力扣-每日温度
  • (Go语言)初上手Go?本篇文章帮拿捏Go的数据类型!
  • 支付宝域名如何加入白名单(扫码老是弹窗)
  • 嵌入式学习第21天Linux基础
  • 【activiti工作流源码集成】springboot+activiti+mysql+vue+redis工作流审批流集成整合业务绑定表单流程图会签驳回
  • 华为私有接口类型hybrid
  • 计算机的错误计算(一百五十)
  • 【模块化大作战】Webpack如何搞定CommonJS与ES6混战(3)
  • 工程认证与Spring Boot:计算机课程管理的新探索
  • vue3的自定义hooks怎么写?
  • SpringBoot项目编译报错 类文件具有错误的版本 61.0, 应为 52.0
  • 【网络】应用层——HTTP协议
  • ServletContext介绍
  • 让AI帮我用java实现EasyExel读取图片—支持WPS嵌入图片
  • C# 实现对指定句柄的窗口进行键盘输入的实现
  • 深度学习之卷积问题
  • yum安装zabbix5.0升级php到74的办法
  • JavaWeb合集23-文件上传
  • 当AI遇上时尚:未来的衣橱会由机器人来打理吗?
  • 【初阶数据结构篇】二叉树OJ题
  • Windows系统中Oracle VM VirtualBox的安装
  • go语言使用总结(持续更新)
  • 如何在Android中自定义property
  • 机器学习5_支持向量机_原问题和对偶问题——MOOC