题目浅析

  • 想查看原题可以点击题目链接

  • 简单地说,就是给一个列表,这个列表有数字或者特殊符号,要求按顺序遍历列表计数,遇到特殊符号则按规则运算(取前两数之和,取上一数两倍,去掉上一数),求最终数值和。

思路分享

  • 就是简单的模拟一个栈,遇到数字直接 append 进去,遇到符号就取数运算把结果 append 进去,或者把最后一个数字 pop 出来。

代码解答(强烈建议自行解答后再看)

  • 参考题解
1
2
3
4
5
6
7
8
9
10
11
12
13
14
class Solution:
def calPoints(self, operations: List[str]) -> int:
rec = list()
for i in operations:
if i == "+":
rec.append(rec[-1]+rec[-2])
elif i == "D":
rec.append(rec[-1]*2)
elif i == "C":
rec.pop()
else:
rec.append(int(i))
# print(rec)
return sum(rec)