前往
大廳
主題

LeetCode - 150. Evaluate Reverse Polish Notation 解題心得

Not In My Back Yard | 2021-06-25 00:00:05 | 巴幣 0 | 人氣 335

題目連結:


題目意譯:
請計算一個反波蘭記法(Reverse Polish Notation,RPN)的算術運算式之值。

合法的運算子為「+」、「-」、「*」和「/」。每個運算元為一個整數或是另一個運算式。

注意其中的兩整數間的除法應往 0 截斷。

保證給定的 RPN 運算式永遠合法。意即運算式永遠可以得到一結果值,且不含任何除以 0 之除法操作。

限制:
1 ≦ tokens.length ≦ 10 ^ 4
tokens[i] 只會是一個運算子: "+" 、 "-" 、 "*" 或是 "/",或是一個整數於範圍 [-200, 200] 中。



範例測資:
範例 1:
輸入: tokens = ["2","1","+","3","*"]
輸出: 9
解釋: ((2 + 1) * 3) = 9

範例 2:
輸入: tokens = ["4","13","5","/","+"]
輸出: 6
解釋: (4 + (13 / 5)) = 6

範例 3:
輸入: tokens = ["10","6","9","3","+","-11","*","/","*","17","+","5","+"]
輸出: 22
解釋: ((10 * (6 / ((9 + 3) * -11))) + 17) + 5
= ((10 * (6 / (12 * -11))) + 17) + 5
= ((10 * (6 / -132)) + 17) + 5
= ((10 * 0) + 17) + 5
= (0 + 17) + 5
= 17 + 5
= 22


解題思維:
反波蘭記法是後序運算式的另一個別稱。因此直接參見這題的作法即可。




此次分享到此為止,如有任何更加簡潔的想法或是有說明不清楚之地方,也煩請各位大大撥冗討論。

創作回應

更多創作