Задача:
Возвращает сумму чисел в массиве, возвращая 0 для пустого массива.За исключением того, что число 13 очень неудачно, поэтому оно не учитывается, и числа, которые приходят сразу после 13, также не учитываются.
Ожидается тестовый образец:
- sum13 ([1, 2, 13, 2, 1, 13]) → 4
- sum13 ([1, 2, 2, 1, 13]) → 6
Мой код дает следующие результаты:
#sum13([1, 2, 13, 2, 1, 13]) → 3
#sum13([1, 2, 2, 1, 13]) → 5
def sum13(nums):
s = 0
if not nums:
return 0
for i in range(len(nums)):
if nums[i]==13 or nums[i-1]==13:
s += 0
else:
s += nums[i]
return s
Почему не учитывается число перед последними 13 числами?
UPD:
Спасибо за комментарии, разберитесь в проблеме.Исправьте так:
def sum13(nums):
s = 0
if not nums:
return 0
for i in range(len(nums)):
if nums[i]==13 or (nums[i-1]==13 and i-1>=0):
s += 0
else:
s += nums[i]
return s