mirror of
https://github.com/youngyangyang04/leetcode-master.git
synced 2025-07-07 15:45:40 +08:00
0150.逆波兰表达式求值 添加更快速的python解
This commit is contained in:
@ -163,6 +163,25 @@ class Solution {
|
||||
|
||||
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
|
||||
class Solution:
|
||||
def evalRPN(self, tokens: List[str]) -> int:
|
||||
|
Reference in New Issue
Block a user