LeetCode Java刷题笔记—150. 逆波兰表达式求值
Posted 刘Java
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode Java刷题笔记—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. 逆波兰表达式求值的主要内容,如果未能解决你的问题,请参考以下文章