楼主:
stenler (挖哈哈思压)
2015-12-13 00:37:30As tile, 今天有一个需求, user会输入如下面这种数学式子的字串
(((1 + 2) * (3 + 6) / 3)
必须得到这个数学式子的答案(9)
请问这个算法该怎么实作?
印象中大学有学过 ... 似乎要用到堆叠之类 (分别push operand and operator?) ...
实在是想不到该用 java 哪些类别跟算法阿 ...
作者:
bitlife (BIT一生)
2015-12-14 19:26:00依运算式复杂程度(仅四则->三角等工程型函等)以及可使用解决方案(可使用现有library甚至网站,如丢个httpget给)数学网站求值),所以要看你详细的需求operator precedence和中序转后序都有其适用范围限制,最标准的一般式的最简单做法是写lex & yacc(java版)脚本