#30203: Java解題思路


a302854888@gmail.com (小麥)

學校 : 不指定學校
編號 : 190267
來源 : [203.204.115.46]
最後登入時間 :
2022-08-23 18:46:16
a017. 五則運算 | From: [203.204.115.46] | 發表日期 : 2022-05-06 20:04

本人解題使用兩個Stack 一個存符號 一個存數字

因此需將數字和符號分開處理

先乘除後加減的部分,需要將符號做權重 +-為1    */%為2,不斷將符號放入Stack,數字也是

由 1 轉換到 2 的時候不計算,最後在處理

由 2 轉換到 1 或者 權重相同(1->1 2->2) 時則計算

計算需用while迴圈往回算,直到上方條件False

 

左括號直接放入符號Stack,並繼續上方的計算

直到右括號時,算式往左方計算,直到遇到左括號,此時需將左括號pop掉

 

 

最後在將未計算完成的算式計算即可,這個地方的計算沒有什麼特別的,因為先乘除後加減與括號問題皆已處理完成

 
ZeroJudge Forum