LeetCode 150 逆波蘭表示式求值

2021-09-12 12:48:46 字數 1303 閱讀 2075

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

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

## 說明:

# 整數除法只保留整數部分。

# 給定逆波蘭表示式總是有效的。換句話說,表示式總會得出有效數值且不存在除數為 0 的情況。

## 示例 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

class solution(object):

def evalrpn(self, tokens):

""":type tokens: list[str]

:rtype: int

"""lens = len(tokens)

stacks =

for i in range(lens):

if tokens[i] == '+':

bb = stacks.pop()

aa = stacks.pop()

elif tokens[i] == '-':

bb = stacks.pop()

aa = stacks.pop()

elif tokens[i] == '*':

bb = stacks.pop()

aa = stacks.pop()

elif tokens[i] == '/':

bb = stacks.pop()

aa = stacks.pop()

else:

return stacks.pop()

LeetCode 150 逆波蘭表示式

根據 逆波蘭表示法,求表示式的值。有效的運算子包括 每個運算物件可以是整數,也可以是另乙個逆波蘭表示式。說明 整數除法只保留整數部分。給定逆波蘭表示式總是有效的。換句話說,表示式總會得出有效數值且不存在除數為 0 的情況。示例 1 輸入 2 1 3 輸出 9 解釋 該算式轉化為常見的中綴算術表示式為...

leetcode 150 逆波蘭表示式求值

根據逆波蘭表示法,求表示式的值。有效的運算子包括 每個運算物件可以是整數,也可以是另乙個逆波蘭表示式。說明 示例 1 輸入 2 1 3 輸出 9 解釋 2 1 3 9示例 2 輸入 4 13 5 輸出 6 解釋 4 13 5 6從前往後遍歷陣列,遇到數字則壓入棧中,遇到符號,則把棧頂的兩個數字拿出來...

leetcode150 逆波蘭表示式求值

根據逆波蘭表示法,求表示式的值。有效的運算子包括 每個運算物件可以是整數,也可以是另乙個逆波蘭表示式。說明 整數除法只保留整數部分。給定逆波蘭表示式總是有效的。換句話說,表示式總會得出有效數值且不存在除數為 0 的情況。示例 1 輸入 2 1 3 輸出 9 解釋 2 1 3 9 示例 2 輸入 4 ...