逆波兰表达式求值(后缀表达式求值)

题目描述

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

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

注意:

  • 有效的算符为 '+''-''*' 和 '/' 。
  • 两个整数之间的除法总是 向零截断 。
  • 表达式中不含除零运算。
  • 输入是一个根据逆波兰表示法表示的算术表达式。

示例 :

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

思路

我们习惯看到的表达式都是中缀表达式,因为符合我们的习惯,但是中缀表达式对于计算机来说就不是很友好了,而前缀表达式和后缀表达式对计算机来说是非常友好的。要求解前缀表达式或者后缀表达式,我们可以借助栈来做。

具体步骤:

  • 遍历整个字符串数组
  • 遇到数字压入栈中,注意数字和字符串的转换
  • 遇到运算符从栈中取出两个数字,将运算结果压入栈中

最后栈中的数字便是我们最终的结果了。

解法

C++版本

逆波兰表达式求值(后缀表达式求值)_第1张图片

Java版本

逆波兰表达式求值(后缀表达式求值)_第2张图片

你可能感兴趣的:(java,javascript,数据结构)