leetcode在力扣 App 中打开
调试中...
调试中...
题目描述
题目描述
题解
题解
提交记录
提交记录
代码
代码
测试用例
测试用例
测试结果
测试结果
中等
相关标签
相关企业
提示

给定一个包含正整数、加(+)、减(-)、乘(*)、除(/)的算数表达式(括号除外),计算其结果。

表达式仅包含非负整数,+-*/ 四种运算符和空格  。 整数除法仅保留整数部分。

示例 1:

输入:"3+2*2"
输出:7

示例 2:

输入:" 3/2 "
输出:1

示例 3:

输入:" 3+5 / 2 "
输出:5

说明:

  • 你可以假设所给定的表达式都是有效的。
  • 不要使用内置的库函数 eval
通过次数
30.9K
提交次数
76.7K
通过率
40.2%

相关标签

相关企业

提示 1
我们可以从左到右处理表达式吗?为什么会失败?

提示 2
乘法和除法是优先级较高的运算。在3*4 + 5*9/2 + 3这样的表达式中,乘法和除法部分需要组合在一起。

提示 3
把它想成当你遇到乘法或除法时,跳至一个单独的“进程”来计算该结果。

提示 4
你还可以维护两个栈,一个用于操作符,另一个用于数字。每次看到一个数字,就把它压入栈。那么操作符呢?什么时候从栈中取出操作符并将它们与数字进行计算?

评论 (0)

《程序员面试金典(第 6 版)》独家授权
本书是原谷歌资深面试官的经验之作,帮助了许多想要加入脸书、苹果、谷歌等 IT 名企的求职者拿到 Dream offer。本专题的 100+ 编程面试题是在原书基础上精心挑选出来的,帮助你轻松应战 IT 名企技术面试。
© 2025 领扣网络(上海)有限公司
3 人在线
行 1,列 1
s =
"3+2*2"
Source