一道数学运算题目求牛人解答
String value = "6+-*/2+3-4*2";
要求先乘除后加减
如果遇到多个运算符取最后一个运算符进行两个数的计算
看那位大牛会哦
------解决方案--------------------第一步:化简计算式,化遇到多个运算符时取最后一个,得到一个计算字符串
第二步:从左往右扫比较相邻两个运算符的优先级计算,数据结构用栈式存储
牛人可以两步一起搞!!
------解决方案--------------------这是编译原理的内容,算数符优先算法,回去看看书。我说说思路。首先要硬编码一个算数符优先表,还要构造两个栈,一个是操作数栈,一个是操作符栈。然后遍历字符串,发现数字,将数字放入操作数栈,然后发现操作符,则将操作符和操作符栈顶进行比较。如果新的算数符优先级大,则进行运算,如果优先级小,则入栈,继续遍历。大概就是这个思路。具体的还是看书吧,呵呵。