Zerojudge 基礎題庫a017 五則運算(Python)
只要有碰到字串的題目,都麻煩死了... 這題我做了5個小時,感覺自己在搞混自己,幸好,最後debug出來了 這題有兩個思維我想說,一個是括號,另一個是先乘除後加減。 1.括號 括號是一個棘手的題目,因為一題可能有兩個以上括號,還有可能括中括 那怎麼辦? 舉一個例子好了: (( 1 + 2 ) + ( 3 + 4 )) + 5 先找最右邊的 '(' : (( 1 + 2 ) + ( 3 + 4 )) + 5 然後找她右邊的第一個 ')' : (( 1 + 2 ) + ( 3 + 4 ) ) + 5 再來我們把()中間的東西運算好,整個替代 ( 3 + 4 ) (( 1 + 2 ) + 7 ) + 5 然後一直重複以下步驟,一直到沒有括號 (( 1 + 2 ) + ( 3 + 4 ) ) + 5 ( ( 1 + 2 ) + 7 ) + 5 ( 3 + 7 ) + 5 10 + 5 最後再計算一次就行了~ 2.先乘除後加減 首先,我們只合併 * / % 這些符號 最後,再合併 + - 這些符號 例如: 2 * 3 + 10 / 5 - 3 % 2 我們先看 * / % 2 * 3 + 10 / 5 - 3 % 2 6 + 10 / 5 - 3 % 2 6 + 2 - 3 % 2 6 + 2 - 1 再看 + - 6 + 2 - 1 8 - 1 7 提示就這些,剩下的自己練習吧 3.程式碼: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 6...