2 Star 1 Fork 0

royce li/Leetcode_royce

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
evalRPN.py 1.64 KB
一键复制 编辑 原始数据 按行查看 历史
Royce Li 提交于 2021-05-10 16:39 . 2020/5/10 First Commit
class Solution:
def evalRPN(self, tokens: List[str]) -> int:
stack=[]
operators={
'+':1,
'-':1,
'*':1,
'/':1
}
for i in tokens:
if i not in operators:
stack.append(int(i))
else:
x=stack.pop()
y=stack.pop()
if i=="+":
stack.append(x+y)
elif i=='-':
stack.append(y-x)
elif i=="*":
stack.append(x*y)
else:
if x*y<0:
stack.append(-(abs(y)//abs(x)))
else:
stack.append(y//x)
return stack[0]
# 执行用时:
# 36 ms
# , 在所有 Python3 提交中击败了
# 98.10%
# 的用户
# 内存消耗:
# 16.2 MB
# , 在所有 Python3 提交中击败了
# 13.63%
# 的用户
class Solution:
def evalRPN(self, tokens: List[str]) -> int:
def add(a,b):
return a+b
def sub(a,b):
return b-a
def mult(a,b):
return a*b
def div(a,b):
if a*b<0:
return -(abs(b)//abs(a))
else:
return b//a
stack=[]
operators={
'+':add,
'-':sub,
'*':mult,
'/':div
}
for i in tokens:
if i not in operators:
stack.append(int(i))
else:
stack.append(operators[i](stack.pop(),stack.pop()))
return stack[0]
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/royce-li/leetcode_royce.git
git@gitee.com:royce-li/leetcode_royce.git
royce-li
leetcode_royce
Leetcode_royce
master

搜索帮助