1、题目如下:
2、个人Python代码实现如下:
代码如下:
class Solution:
def calPoints(self, operations: List[str]) -> int:
i = 0 #用于遍历元素的下标
while i < len(operations): #当没有遍历完时,一直遍历
if operations[i] == 'C': #如果元素为C,删除当前元素及上一个元素,并从当前元素上一个元素继续遍历
del operations[i-1: i+1]
i -= 1
elif operations[i] == 'D': #如果元素为D,将当前元素赋值为前一个元素的2倍,并从当前元素的下一个元素继续遍历
operations[i] = operations[i-1] * 2
i += 1
elif operations[i] == '+': #如果元素为+,将当前元素赋值为前两个元素之和,并从当前元素的下一个元素继续遍历
operations[i] = operations[i-2] + operations[i-1]
i += 1
else: #如果元素为数字,转换成整型
operations[i] = int(operations[i])
i += 1
return sum(operations)
3、力扣题解代码Copy:
对于个人,难点在于下标的重新赋值以及循环的退出。 再看力扣题解,思路几乎一样,但是题解使用的是栈的思路,在如果解决循环这里更优: