2025年华为java面试题及答案(华为笔试java编程题)

华为java面试题及答案(华为笔试java编程题)专栏 50 多种数据结构彻底征服 专栏 50 多种经典图论算法全部掌握 这段时间 上海青浦华为练秋湖研发中心第一批 3000 名研发人员已经入驻 预计明年春节前后 大约 25000 人进驻办公 明年年底 完成约 30000 人 华为青浦研发中心也为应届生提供了公寓 公寓有华为智慧屏 松下洗衣机 智能马桶 华为门锁 可以入住两年 从公寓关门到公司打卡五分钟不到的路程 这在上海普遍一个小时的上班时间来说已经非常非常近了 下面是今天的算法题



专栏:50多种数据结构彻底征服

专栏:50多种经典图论算法全部掌握

这段时间,上海青浦华为练秋湖研发中心第一批3000名研发人员已经入驻,预计明年春节前后,大约25000人进驻办公,明年年底,完成约30000人。

华为青浦研发中心也为应届生提供了公寓,公寓有华为智慧屏,松下洗衣机,智能马桶,华为门锁,可以入住两年。从公寓关门到公司打卡五分钟不到的路程,这在上海普遍一个小时的上班时间来说已经非常非常近了。











--------------下面是今天的算法题--------------

来看下今天的算法题,这题是LeetCode的第150题:逆波兰表达式求值。

问题描述

来源:LeetCode第150题

难度:中等

给你一个字符串数组 tokens ,表示一个根据逆波兰表示法表示的算术表达式。请你计算该表达式。返回一个表示表达式值的整数。

示例1:


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

示例2:


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

  • 1 <= tokens.length <= 10^4

  • tokens[i] 是一个算符("+"、"-"、"*" 或 "/"),或是在范围 [-200, 200] 内的一个整数

问题分析

我们平时书写的表达式是中缀表达式,运算符在中间,操作数在两边,比如a+b。逆波兰表达式也就是 后缀表达式 ,操作数在前,运算符在后,比如 a b + 。还有一个是前缀表达式,是波兰表达式,运算符在前,操作数在后,比如 + a b 。

对于我们人来说中缀表达式是最容易计算的,但对于计算机来说更容易计算的是前缀表达式和后缀表达式。关于前,中,后三种表达式的相互转换有堆栈法,二叉树法和括号法,具体可以看下 《 中的第十三章。

对于逆波兰表达式的计算我们只需要使用一个栈即可,遍历字符串数组,如果遇到数字就入栈,如果是运算符就从栈中弹出两个数字, 注意先出栈的是右值,后出栈的是左值 ,把它们计算的结果入栈,直到字符串数组遍历完为止。

JAVA:

/p>

p id="34KTR151">C++:

/p>

pre>

/pre>

br/>

Python:


笔者简介

博哥,真名:王一博,毕业十多年, 作者,专注于 数据结构和算法 的讲解,在全球30多个算法网站中累计做题2000多道,在公众号中写算法题解800多题,对算法题有自己独特的解题思路和解题技巧,喜欢的可以给个关注,也可以 下载我整理的1000多页的PDF算法文档 。

编程小号
上一篇 2026-03-23 09:40
下一篇 2026-03-23 09:51

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/bian-cheng-ri-ji/57239.html