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】表示栈顶的第一个数,也就是列表的最后一个数