我的问题是关于我描述的代码,但是没有用

时间:2019-08-04 15:09:15

标签: python pycharm

'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。

2 个答案:

答案 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

返还金额