'SUMMER OF '69:返回数组中数字的总和,但忽略以6开头并扩展到下一个9的数字部分(每6个字符后至少跟9个数字)。没有数字则返回0。¶
我尝试使用pop方法,但是没有用。我想知道为什么。
def summer_69(arr):
num=(6,7,8,9)
if num not in arr:
return sum(arr)
if num in arr:
arr.pop(num)
return sum(arr)
print(summer_69([4,5,6,7,8,9]))
我得到的总和就像这39。
答案 0 :(得分:0)
Pop删除指定索引处的项目。数组中的最大索引为5(4的索引为0)。 我建议通过以下方式找到索引6:
arr.index(6)
效率不高,但是您可以重复弹出该索引,直到索引变为9(如果“扩展到”意味着包括9,则再次弹出)。
答案 1 :(得分:0)
代替这样做,我建议您使用单个循环,因为这样会更有效。使用单循环并保持相加数直到遇到6。一旦6出现,跳过数字,直到出现9。再次开始将数字相加。在O(n)中运行。
i = 0
总和= 0
而我<长度:
If a[i] == 6:
While i < length and a[i] != 9:
i += 1
Else:
Sum += a[i]
i += 1
返还金额