利用stringstream將運算元及運算子以空白隔開,
並一一讀取。
讀到運算元就丟入運算元的堆疊中,
讀到運算子就丟入運算子的堆疊中,
並判斷上一個運算子的優先度是否大於等於它,
若是的話,就一直執行,直到遇到比它小的運算子才放進堆疊中。
唯'('和')'比較特別,
丟入堆疊時:
( > * = / = % > + > - > ),
判斷時:
* = / = % > + > - > ( 。
遇到')',要一直輸出,只要輸出到'(',就把'('消去,也不把自己')'存進堆疊中。
這樣做完即可得解。
[C++](6ms, 766KB)
0 意見:
張貼留言