class Solution:
def calPoints(self, ops: List[str]) -> int:
length = len(ops)
score = [0]*(length)
score[0] = ops[0]
i=1
while i <= length-1:
if isinstance(ops[i],int):
if
score[i] = ops[i]
elif ops[i] == "+":
if i == 1:
score[i] = score[i-1]
else:
score[i] = score[i-1] + score[i-2]
elif ops[i] == "D":
score[i] = 2 * score[i-1]
elif ops[i] == "C":
score[i-1] = 0
score[i] = 0
i += 1
return sum(score)
https://leetcode-cn.com/problems/baseball-game/
上面那种做法没有用栈,是错误的,下面正确(自己做)
class Solution:
def calPoints(self, ops: List[str]) -> int:
length = len(ops)
res = []
for i in range(0,length):
if ops[i]!="+" and ops[i]!="D" and ops[i]!="C":
res.append(int(ops[i]))
elif ops[i] == "+":
res.append(res[-1]+res[-2])
elif ops[i] == "C":
res.pop()
elif ops[i]=='D':
res.append(2*res[-1])
return(sum(res))