
class Solution(object):
def calPoints(self, ops):
"""
:type ops: List[str]
:rtype: int
"""
stack = []
res=0
for op in ops:
if op == 'C':
res -= stack.pop()
elif op == 'D':
stack.append(stack[-1] * 2)
res += stack[-1]
elif op == '+':
stack.append(stack[-1] + stack[-2])
res += stack[-1]
else:
stack.append(int(op))
res += stack[-1] #取出目前stack中最新的元素
return res
1.首先看题目需要进行公式计算,类似后缀公式因此应当采用栈的结构。
2.判断条件的时候不知道数字怎么判断就放在else语句下就可以了。
3.stack【-1】表示栈顶的第一个数,也就是列表的最后一个数
本文介绍了一种使用栈数据结构实现计算器的方法,通过解析输入的操作序列,包括加、减、乘、除、撤销和加倍等操作,实现了对操作序列的正确处理和计算结果的返回。文章详细解释了每种操作的实现逻辑,以及如何利用栈来存储和计算中间结果。
775

被折叠的 条评论
为什么被折叠?



