33.89%
class Solution(object):
def calPoints(self, ops):
"""
:type ops: List[str]
:rtype: int
"""
result = 0
for i,char in enumerate(ops):
if char=='C':
for ii,num in enumerate(ops[i-1::-1]):
if num=='invalid':
continue
else:
result -= num
ops[i-1-ii] = 'invalid'
ops[i] = 'invalid'
break
elif char=='D':
for num in ops[i-1::-1]:
if num=='invalid':
continue
else:
ops[i] = 2*num
result += 2*num
break
elif char=='+':
cnt = 0
ssum = 0
for num in ops[i-1::-1]:
if num=='invalid':
continue
else:
cnt+=1
ssum+=num
if cnt>1:
break
ops[i] = ssum
result += ops[i]
else:
ops[i] = int(char)
result += ops[i]
return result————————————————————
天哪,这个考点在list,把list当作一个栈来做,stack
99.83%
class Solution(object):
def calPoints(self, ops):
"""
:type ops: List[str]
:rtype: int
"""
result = []
for char in ops:
if char=='C':
result.pop()
elif char=='D':
result.append(2*result[-1])
elif char=='+':
result.append(result[-1]+result[-2])
else:
result.append(int(char))
return sum(result)
本文介绍了一种使用Python列表作为栈来处理一系列操作指令的方法,这些指令包括取消上一次操作(C)、将当前分数加倍(D)及获取前两次操作的分数之和(+)。通过解析这些指令,文章提供了一个解决方案来计算最终的总得分。

580

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



