配列内の数値の合計を返します。ただし、6で始まり、次の7まで続く数値のセクションは無視します(6ごとに少なくとも1つの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からこの問題に対するより洗練された解決策を探しています。この答えは、直感的ではないようです。