題目連結:
題目大意:
給定一個運算式,有加、減、乘、除、取餘數的運算子( + - * / % )。
運算子和運算元中間會有空格分開,而運算元為 0 ~ 2 ^ 31 - 1 的整數。
註:取餘數的運算優先度等同於乘、除。
範例輸入:
2 + 3 * 4
2 * ( 3 + 4 ) * 5
範例輸出:
14
70
解題思維:
與
此題類似,只是多了「%」運算子。而且還要把運算式的值算出來。
算出來的方法並不複雜,例如有一後序運算式為234+5 * * 。
一開始有一個2,先放入陣列或堆疊裡。
再來是3,也放到陣列或堆疊裡。
再來是4,一樣要儲存。
接下來有一個「+」,取陣列或堆疊裡的末端兩個數字做運算。然後把做完運算的值放回陣列或堆疊裡。
5,同理。
「*」,同理,拿兩個數字。把新的數字放回去。
「*」,同理。
最後,陣列或堆疊裡會剩下唯一一個數字,即是運算式的結果。
其他運算式也是同樣的方法。
此次分享到此為止,如有任何更加簡潔的想法或是有說明不清楚之地方,也煩請各位大大撥冗討論。