返回数组中数字的总和,除了忽略以 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):
dontadd = 0
sum = 0
for i in range(0, len(nums)):
if dontadd == 0:
if nums[i] == 6:
dontadd = 1
else:
sum += nums[i]
else:
if nums[i] == 7:
dontadd = 0
else:
pass# nothing happens. It is useful as a placeholder when a statement is required syntactically
return sum
从codingbat 中寻找更优雅的解决方案。这个答案似乎并不直观