我正在以下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))'?伊克! –