LeetCode Java刷题笔记—150. 逆波兰表达式求值

Posted 刘Java

tags:

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

150. 逆波兰表达式求值

根据逆波兰表示法(又叫做后缀表达式),求表达式的值。有效的算符包括 +、-、*、/ 。每个运算对象可以是整数,也可以是另一个逆波兰表达式。

中等难度。逆波兰表示式可用栈进行计算,遇到数字就将数字压栈,遇到操作符,就将栈顶的两个元素取出计算,将计算结果再压入栈即可,实际上还是比较简单的。

public int evalRPN( String[] tokens )

   Stack<Integer> stack = new Stack<>();
   for( String s : tokens )
      switch( s )
         //注意是num2是第一个操作数,num1是第二个操作数
         case "+":
            int num1 = stack.pop();
            int num2 = stack.pop();
            stack.push( num2 + num1 );
            break;
         
         case "-":
            int num1 = stack.pop();
            int num2 = stack.pop();
            stack.push( num2 - num1 );
            break;
         
         case "*":
            int num1 = stack.pop();
            int num2 = stack.pop();
            stack.push( num2 * num1 );
            break;
         
         case "/":
            int num1 = stack.pop();
            int num2 = stack.pop();
            stack.push( num2 / num1 );
            break;
         
         default:
            stack.push( Integer.valueOf( s ) );
            break;
      
   
   return stack.pop();

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

刷题-LeetCode150 Evaluate Reverse Polish Notation

LeetCode Java刷题笔记汇总

leetcode刷题总结101-150

LeetCode刷题模版:141 - 150

LeetCode刷题模版:141 - 150

LeetCode Java刷题笔记—226. 翻转二叉树