150. 逆波兰表达式求值

Posted 潜行前行

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了150. 逆波兰表达式求值相关的知识,希望对你有一定的参考价值。

  1. 逆波兰表达式求值
    根据 逆波兰表示法,求表达式的值。

有效的算符包括 +、-、*、/ 。每个运算对象可以是整数,也可以是另一个逆波兰表达式。

注意 两个整数之间的除法只保留整数部分。

可以保证给定的逆波兰表达式总是有效的。换句话说,表达式总会得出有效数值且不存在除数为 0 的情况。

示例 1:

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

关键点

class Solution 
    public int evalRPN(String[] tokens) 
        LinkedList<Integer> pq = new LinkedList<>();
        int res; // 两个整数之间的除法只保留整数部分
        for( int i=0;i<tokens.length;i++)
            int tmp;
            if("+".equals(tokens[i]))
                tmp = pq.removeLast() + pq.removeLast();
            else if("-".equals( tokens[i]) )
                tmp = pq.removeLast();
                tmp = pq.removeLast() - tmp ;
            else if("*".equals( tokens[i]) )
                tmp = pq.removeLast() * pq.removeLast();
            else if("/".equals( tokens[i]) )
                tmp = pq.removeLast();
                tmp = pq.removeLast() / tmp ;
            else
                tmp = Integer.parseInt(tokens[i]);
            
            pq.add(tmp);
        
        return pq.poll();
    

2022深度学习开发者峰会 5月20日13:00让我们相聚云端,共襄盛会!

以上是关于150. 逆波兰表达式求值的主要内容,如果未能解决你的问题,请参考以下文章

Leetcode No.150 逆波兰表达式求值(栈)

数据结构与算法之深入解析“逆波兰表达式求值”的求解思路与算法示例

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

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

波兰式与逆波兰式的转换和表达式求值

LeetCode:逆波兰表达式求值150