我正在尝试编写一个Java例程来评估简单的数学表达式,String例如:
"5+3""10-40""10*3"我想避免很多if-then-else语句.我怎样才能做到这一点?
这是一个面试问题我对它的解决方案感到困惑,我认为我需要堆栈来推送和弹出这些运算符和操作数,但是我需要两个堆栈,一个用于运算符,一个用于操作数?或者只是一个堆栈吗?我认为我们需要两个堆栈但是有没有办法解决使用一个堆栈?
我也有点困惑,这将如何工作,每次我得到一个运算符我会弹出我的两个最顶层的操作数并将结果推入操作数堆栈
preferance首先是括号,然后是divide,multioply和last减法然后加法
但是如何检查何时弹出两个操作数并进行必要的关节操作?