作者:
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版)腳本