150 逆波蘭表示式求值

2022-06-26 19:27:16 字數 1851 閱讀 7946

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

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

說明:示例 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

逆波蘭表示式:

逆波蘭表示式是一種字尾表示式,所謂字尾就是指算符寫在後面。

逆波蘭表示式主要有以下兩個優點:

cpp

class

solution

int evalrpn(vector&tokens)

else

else

if(tokens[i]=="/"

)

else

if(tokens[i]=="+"

)

else

if(tokens[i]=="-"

) }

}return

std::stoi(nums.top());

}};

js

/*

* * @param tokens

* @return */

var evalrpn = function

(tokens)

else

else

if(token==="/")else

if(token==="+")

else

if(token==="-")}}

return

stack.pop();

};

py

class

solution:

def evalrpn(self, tokens: list[str]) ->int:

s=for t in

tokens:

if t.isnumeric() or t[0]=='-'

and t[1:].isnumeric():

else

: a=int(s.pop())

b=int(s.pop())

if t=="*"

:

elif t=="/"

:

elif t=="+"

:

elif t=="-"

:

return int(s.pop())

150 逆波蘭表示式求值

根據逆波蘭表示法,求表示式的值。有效的運算子包括 每個運算物件可以是整數,也可以是另乙個逆波蘭表示式。說明 示例 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 解釋 ...

150 逆波蘭表示式求值

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

150 逆波蘭表示式求值

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