波蘭表示式和逆波蘭表示式

2021-10-24 02:57:38 字數 1105 閱讀 7192

題目:

根據逆波蘭表示法,求表示式的值。

有效的運算子包括+,-,*,/。每個運算物件可以是整數,也可以是另乙個逆波蘭表示式。

說明:

示例 1:

輸入: ["2", "1", "+", "3", "*"]

輸出: 9

解釋: 該算式轉化為常見的中綴算術表示式為:((2 + 1) * 3) = 9

示例 2:

輸入: ["4", "13", "5", "/", "+"]

輸出: 6

解釋: 該算式轉化為常見的中綴算術表示式為:(4 + (13 / 5)) = 6

示例 3:

輸入: ["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

方式 1 :如果是逆波蘭表示式,那麼久從左往右掃瞄,如果是陣列就存入到堆疊裡面,如果是運算符號就在堆疊裡面獲取兩個資料進行計算。如果是波蘭表示式就從右到左進行掃瞄。

class solution 

else if(current=="-")

else if (current == "*")

else if (current == "/")

else

}return pool.top();

}};

波蘭表示式 逆波蘭表示式

中綴表示式是最常見的運算表示式,如 3 5 2 6 1 波蘭表示式又稱為字首表示式,它是由中綴表示式經過一定的方式轉換來的 比如中綴表示式為 3 5x 2 6 1 對應的字首表示式為 3 x 5 2 6 1 對於中綴表示式從右向左遍歷轉換為字首表示式,中途要是用棧進行儲存 轉換規則如下 波蘭表示式 ...

波蘭表示式和逆波蘭表示式(棧)

中綴表示式如1 2 2 1 其運算子一般出現在運算元之間,因此稱為中綴表示式,也就是大家程式設計中寫的表達 式。編譯系統不考慮表示式的優先級別,只是對表示式從左到右進行掃瞄,當遇到運算子時,就把其前面的兩 個運算元取出,進行操作。為達到上述目的,就要將中綴表示式進行改寫,變為字尾表示式 如上面的表示...

波蘭逆波蘭表示式

實現乙個基本的計算器來計算簡單的表示式字串。表示式字串只包含非負整數,算符 左括號 和右括號 整數除法需要 向下截斷 你可以假定給定的表示式總是有效的。所有的中間結果的範圍為 231,231 1 class solution s2.push s.substr l,r l l r 碰見符號 else ...