逆波兰表达式求值

Posted Alice_yufeng

tags:

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

class Solution 
    public int evalRPN(String[] tokens) 
        Deque<Integer> stack = new LinkedList<Integer>();
        int n = tokens.length;
        for (int i = 0; i < n; i++) 
            String token = tokens[i];
            if (isNumber(token)) 
                stack.push(Integer.parseInt(token));
             else 
                int num2 = stack.pop();
                int num1 = stack.pop();
                switch (token) 
                    case "+":
                        stack.push(num1 + num2);
                        break;
                    case "-":
                        stack.push(num1 - num2);
                        break;
                    case "*":
                        stack.push(num1 * num2);
                        break;
                    case "/":
                        stack.push(num1 / num2);
                        break;
                    default:
                
            
        
        return stack.pop();
    

    public boolean isNumber(String token) 
        return !("+".equals(token) || "-".equals(token) || "*".equals(token) || "/".equals(token));
    

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

逆波兰表达式求值

LeetCode 0150. 逆波兰表达式求值

LeetCode:逆波兰表达式求值150

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

150. 逆波兰表达式求值

逆波兰表达式求值