做這題前先確保你知道以下概念:
這題其實就是在處理前序運算式
回想一下前序運算式長怎樣? 怎麼做? 想不起來就想一下後序運算式你是怎麼做的
在後序運算式中......
在前序運算式中......
判斷運算子其實就相當於在判斷你要使用什麼函式進行計算,像這樣,我用 python 表示
我有罪,我使用中文變量名,在 python 能正常執行,主要是方便理解,但還是建議沒事別這樣做
那換到這題也是一樣的,讀取時你一樣要判斷要用什麼函式計算,不過這題是升級版的,傳入參數並非像加減乘除那樣,都固定傳 2 個數字進去
如果你會前序運算式的算法了,那這題就只需要解決不同函式需要傳入不同數量的參數的問題而已
總結:
對於前序運算式的處理方式,我知道的有兩種
這邊已經簡單提 stack 的作法,遞迴就自己想吧(真的想不到再點:python 解)
另外,python 的 eval() 被禁了,所以用python的別考慮它
似乎是偵測文字內容?發現有eval就禁?
我原本使用 eval_expr 作為我的函數名,被說禁止使用eval (我真的沒有用到它啦QQ)