mirror of
https://github.com/youngyangyang04/leetcode-master.git
synced 2025-07-08 00:43:04 +08:00
0150.逆波兰表达式求值 添加更快速的python解
This commit is contained in:
@ -163,6 +163,25 @@ class Solution {
|
|||||||
|
|
||||||
python3
|
python3
|
||||||
|
|
||||||
|
```python
|
||||||
|
from operator import add, sub, mul
|
||||||
|
|
||||||
|
class Solution:
|
||||||
|
op_map = {'+': add, '-': sub, '*': mul, '/': lambda x, y: int(x / y)}
|
||||||
|
|
||||||
|
def evalRPN(self, tokens: List[str]) -> int:
|
||||||
|
stack = []
|
||||||
|
for token in tokens:
|
||||||
|
if token not in {'+', '-', '*', '/'}:
|
||||||
|
stack.append(int(token))
|
||||||
|
else:
|
||||||
|
op2 = stack.pop()
|
||||||
|
op1 = stack.pop()
|
||||||
|
stack.append(self.op_map[token](op1, op2)) # 第一个出来的在运算符后面
|
||||||
|
return stack.pop()
|
||||||
|
```
|
||||||
|
|
||||||
|
另一种可行,但因为使用eval相对较慢的方法:
|
||||||
```python
|
```python
|
||||||
class Solution:
|
class Solution:
|
||||||
def evalRPN(self, tokens: List[str]) -> int:
|
def evalRPN(self, tokens: List[str]) -> int:
|
||||||
|
Reference in New Issue
Block a user