当前位置: 首页 > 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]
}

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

相关文章:

华为OD技术一面手撕题

150. 逆波兰表达式求值 来自leecode 给你一个字符串数组 tokens ,表示一个根据 逆波兰表示法 表示的算术表达式。 请你计算该表达式。返回一个表示表达式值的整数。 注意: 有效的算符为 、-、* 和 / 。每个操作数(运算对象)都…...

Qt低版本多网卡组播bug

原文地址 最近在某个项目中,发现了一个低版本Qt的bug,导致组播无法正常使用,经过一番排查,终于找到了原因,特此记录。 环境 Qt:5.7.0 mingw32操作系统:windows 11 现象 在Qt5.7.0版本中&…...

Leetcode:540. 有序数组中的单一元素

题目 给你一个仅由整数组成的有序数组,其中每个元素都会出现两次,唯有一个数只会出现一次。 请你找出并返回只出现一次的那个数。 你设计的解决方案必须满足 O(log n) 时间复杂度和 O(1) 空间复杂度。 输入: nums [1,1,2,3,3,4,4,8,8] 输出: 2 输入:…...

Python数据分析NumPy和pandas(二十七、数据可视化 matplotlib API 入门)

数据可视化或者数据绘图是数据分析中最重要的任务之一,是数据探索过程的一部分,数据可视化可以帮助我们识别异常值、识别出需要的数据转换以及为模型生成提供思考依据。对于Web开发人员,构建基于Web的数据可视化显示也是一种重要的方式。Pyth…...

数组指针和指针的区别

区分数组指针和指针数组 int *p[3]和 int (*p)[3] 根据运算符的优先级,"[]"的优先级是高于“*”的,p就会先与[]结合,那么它本质就是数组,数组内存放的是指针,它叫指针数组。(int*p[3]&#xff…...

Linux git-bash配置

参考资料 命令提示符Windows下的Git Bash配置,提升你的终端操作体验WindowsTerminal添加git-bash 目录 一. git-bash配置1.1 解决中文乱码1.2 修改命令提示符 二. WindowsTerminal配置git-bash2.1 添加git-bash到WindowsTerminal2.2 解决删除时窗口闪烁问题 三. VS…...

【后端速成Vue】computed计算属性

前言: 本期将会介绍 Vue 中的计算属性,他和 methods 方法又会有什么区别呢?在这里都会给你一一讲解。 篮球哥找工作专属IT岗位内部推荐: 专属内推链接:内推通道 1、computed计算属性 概念: 基于现有的数据…...

力扣-每日温度

. - 力扣&#xff08;LeetCode&#xff09; 这是我的第一个思路 虽然可以得到正确答案 但是过于暴力 已经超出了时间限制 class Solution { public:vector<int> dailyTemperatures(vector<int>& temperatures) {vector<int>ans;for (int i 0; i <…...

(Go语言)初上手Go?本篇文章帮拿捏Go的数据类型!

1. bool 类型 布尔类型&#xff1a;只有 true 和 false 两种值 在Go中&#xff0c;整数 0 不代表 false 值&#xff0c;1也不代表 true 值 即数字无法代替布尔值进行逻辑判断&#xff0c;两者是完全不同的类型 布尔类型占用 1 字节 2. int 整型 Go中为不同位数的整数分配…...

支付宝域名如何加入白名单(扫码老是弹窗)

支付宝扫码之后,遇到非支付宝官方网页,请确认是否继续访问弹窗,问题解决办法。 本章教程提供解决办法,亲测有效。 一、打开支付宝开放平台 登录地址:https://open.alipay.com/ 然后进行扫码登录。 1、打开网页/移动应用开发 2、前往创建 3、创建应用...

嵌入式学习第21天Linux基础

目录 第1章 Linux 系统介绍 1.1 Unix 操作系统&#xff08;了解&#xff09; 1.2 Linux 操作系统&#xff08;了解&#xff09; 1.3 Linux 操作系统的主要特性&#xff08;重点&#xff09; 1.4 Linux 与 Unix 的区别与联系 1.5 GUN 与 GPL&#xff08;了解&#xff09; …...

【activiti工作流源码集成】springboot+activiti+mysql+vue+redis工作流审批流集成整合业务绑定表单流程图会签驳回

工作流集成实际项目案例&#xff0c;demo提供 源码获取方式&#xff1a;本文末个人名片直接获取。 前言 activiti工作流引擎项目&#xff0c;企业erp、oa、hr、crm等企事业办公系统轻松落地&#xff0c;请假审批demo从流程绘制到审批结束实例。 一、项目形式 springbootvue…...

华为私有接口类型hybrid

华为私有接口类型hybrid Tip&#xff1a;hybrid类型&#xff0c;简称混合型接口。 本次实验模拟2层网络下 vlan10 vlan20 不能互访&#xff0c;vlan10 vlan20 同时可以访问vlan100 sw1配置如下&#xff1a; <Huawei>sy [Huawei]sys sw1 [sw1]vl ba 10 20 100 [sw1]int…...

计算机的错误计算(一百五十)

摘要 探讨 MATLAB 中 的计算精度问题。当 为含有小数的大数或 &#xff08;&#xff09;附近数时&#xff0c;输出会有错误数字。 例1. 已知 计算 直接贴图吧&#xff1a; 另外&#xff0c;16位的正确值分别为 -0.7882256119904400e0、0.1702266977524110e0、-0.…...

【模块化大作战】Webpack如何搞定CommonJS与ES6混战(3)

在前端开发中&#xff0c;模块化是一个重要的概念&#xff0c;不同的模块化标准有不同的特点和适用场景。webpack 同时支持 CommonJS 和 ES6 Module&#xff0c;因此需要理解它们在互操作时 webpack 是如何处理的。 同模块化标准 如果导出和导入使用的是同一种模块化标准&…...

工程认证与Spring Boot:计算机课程管理的新探索

摘要 随着信息技术在管理上越来越深入而广泛的应用&#xff0c;管理信息系统的实施在技术上已逐步成熟。本文介绍了基于工程教育认证的计算机课程管理平台的开发全过程。通过分析基于工程教育认证的计算机课程管理平台管理的不足&#xff0c;创建了一个计算机管理基于工程教育认…...

vue3的自定义hooks怎么写?

写个hook函数去追踪鼠标位置&#xff1a; 没用hook前&#xff1a; <script setup> import { ref, onMounted, onUnmounted } from vueconst x ref(0) const y ref(0)function update(event) {x.value event.pageXy.value event.pageY }onMounted(() > window.ad…...

SpringBoot项目编译报错 类文件具有错误的版本 61.0, 应为 52.0

springboot项目在编译时报错&#xff1a; /Users/Apple/Developer/art/caicai/cai-api/dubbo-samples/1-basic/dubbo-samples-spring-boot/dubbo-samples-spring-boot-provider/src/main/java/org/apache/dubbo/springboot/demo/provider/ProviderApplication.java:22:32 java…...

【网络】应用层——HTTP协议

> 作者&#xff1a;დ旧言~ > 座右铭&#xff1a;松树千年终是朽&#xff0c;槿花一日自为荣。 > 目标&#xff1a;了解什么是HTTP协议。 > 毒鸡汤&#xff1a;有些事情&#xff0c;总是不明白&#xff0c;所以我不会坚持。早安! > 专栏选自&#xff1a;网络 &g…...

ServletContext介绍

文章目录 1、ServletContext对象介绍1_方法介绍2_用例分析 2、ServletContainerInitializer1_整体结构2_工作原理3_使用案例 3、Spring案例源码分析1_注册DispatcherServlet2_注册配置类3_SpringServletContainerInitializer 4_总结 ServletContext 表示上下文对象&#xff0c;…...

MAI-UI-8B在Ubuntu系统中的性能优化指南

MAI-UI-8B在Ubuntu系统中的性能优化指南 1. 引言 如果你正在Ubuntu系统上运行MAI-UI-8B模型&#xff0c;可能会遇到性能瓶颈问题。模型响应慢、资源占用高、推理速度不理想&#xff0c;这些都是实际使用中常见的痛点。作为一名技术从业者&#xff0c;我深知这些性能问题对开发…...

万物识别镜像实战案例:如何用MySQL管理上万张图片识别结果?

万物识别镜像实战案例&#xff1a;如何用MySQL管理上万张图片识别结果&#xff1f; 1. 引言 当你使用万物识别模型处理了成千上万张图片后&#xff0c;是否遇到过这样的困扰&#xff1a;识别结果散落在各处&#xff0c;想要查找某张特定图片的识别记录时无从下手&#xff1f;…...

3大核心功能+2套实战流程:零基础掌握FreeCAD开源3D建模

3大核心功能2套实战流程&#xff1a;零基础掌握FreeCAD开源3D建模 【免费下载链接】FreeCAD This is the official source code of FreeCAD, a free and opensource multiplatform 3D parametric modeler. 项目地址: https://gitcode.com/GitHub_Trending/fr/freecad 3D…...

AI生成内容检测新思路:除了红绿词表,我们还能用哪些方法识别ChatGPT写的文章?

AI生成内容检测技术全景&#xff1a;超越红绿词表的七种实战方法 当ChatGPT生成的论文摘要通过学术评审、AI撰写的新闻稿被主流媒体刊发时&#xff0c;内容真实性的边界正在变得模糊。某高校教授最近向我展示了一份学生作业——文笔流畅的哲学论述&#xff0c;最终被证实完全由…...

避坑指南:StarRocks聚合模型排序键的5个常见错误配置(含性能对比测试)

StarRocks聚合模型排序键配置实战&#xff1a;从性能陷阱到最佳实践 当电商平台的UV统计查询从3秒延长到30秒&#xff0c;当数据仓库的存储空间以每天10%的速度膨胀&#xff0c;很多团队才意识到——聚合模型的排序键配置出了问题。作为StarRocks最核心的性能杠杆&#xff0c;排…...

OpenClaw日志分析技巧:GLM-4.7-Flash任务执行问题定位

OpenClaw日志分析技巧&#xff1a;GLM-4.7-Flash任务执行问题定位 1. 为什么需要关注OpenClaw日志 上周我在尝试用GLM-4.7-Flash模型自动处理一批技术文档时&#xff0c;遇到了一个诡异现象&#xff1a;任务明明显示执行成功&#xff0c;但最终输出文件却是空的。这个经历让我…...

Python实战:从零掌握标准正态分布及其可视化

1. 什么是标准正态分布&#xff1f; 我第一次接触标准正态分布是在大学统计课上&#xff0c;当时教授画了一个完美的钟形曲线&#xff0c;说这是自然界最常见的分布。后来做数据分析才发现&#xff0c;这个看似简单的曲线真的无处不在——从人的身高体重到考试分数&#xff0c;…...

LaTeX algorithm2e避坑指南:为什么你的\tcp*注释后面总多个分号?

LaTeX algorithm2e避坑指南&#xff1a;为什么你的\tcp*注释后面总多个分号&#xff1f; 第一次在LaTeX中用algorithm2e写算法伪代码时&#xff0c;很多人会被\tcp*这个看似简单的注释命令坑到——明明只是想加个注释&#xff0c;结果代码末尾莫名其妙多出个分号&#xff0c;排…...

排序算法---(四)

引言在前几篇文章里面讲到了六种排序&#xff0c;今天来讲一下剩下两种&#xff1a;基数排序、堆排序基数排序1.思路&#xff08;1&#xff09;首先确定最大数的位数&#xff1a;找到待排序数组中的最大数&#xff0c;并确定其位数&#xff08;2&#xff09;将元素按照相应的位…...

PCIE差分对布线:从规范到实战的关键要点

1. PCIE差分对布线的基础认知 第一次接触PCIE差分对布线时&#xff0c;我盯着那些密密麻麻的走线头皮发麻。后来才发现&#xff0c;理解它的本质其实很简单——就像两个配合默契的舞者&#xff0c;必须保持完全同步的动作才能呈现完美表演。PCIE差分信号正是通过一对相位相反的…...