[英]My question is about a code i have described but it didn't work
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 一樣。
Pop 刪除指定索引處的項目。 數組中的最大索引為 5(4 的索引為 0)。 我建議通過以下方式找到 6 的索引
arr.index(6)
效率不高,但您可以重復彈出該索引,直到它變為 9,(如果“擴展到”意味着包括 9,則再次彈出)。
我會建議您使用單個循環而不是這樣做,因為它會更有效。 使用單循環並不斷將數字相加,直到遇到 6。 一出現 6 就跳過數字,直到出現 9。 再次開始將數字相加。 在 O(n) 中運行。
我=0
總和 =0
當我 < 長度:
If a[i] == 6:
While i < length and a[i] != 9:
i += 1
Else:
Sum += a[i]
i += 1
返回總和
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.