我正在以下codingbat問題:CodingBat sum67:爲什麼這個解決方案是錯誤的?
返回陣列中的數的總和,除了忽略數字區段開頭的6並延伸到下一個7(每6之後,將至少有一個7)。沒有號碼返回0。
sum67([1, 2, 2]) → 5 sum67([1, 2, 2, 6, 99, 99, 7]) → 5 sum67([1, 1, 6, 7, 2]) → 4
我的解決辦法是:
def sum67(nums):
sum = 0
throwaway = 0
for i in range(len(nums)):
if throwaway == 0:
if nums[i] == 6:
throwaway = 1
elif throwaway == 1 and i > 0 and nums[i-1] == 7:
throwaway = 0
if throwaway == 0:
sum += nums[i]
return sum
我完全知道這是不是最好的解決辦法,但我只是好奇知道爲什麼這是錯的。你能解釋一下爲什麼這是錯誤的,在哪種情況下它會給出錯誤的結果?
首先,代碼沒有正確縮進,請修復它(我沒有編輯權限;))。 – hochl
你知道'bool'類型嗎? –
'我在範圍內(len(nums))'?伊克! –