69年的夏季:返回数组中数字的总和,但忽略从6开始并扩展到下一个9的数字部分(每6后面将至少跟一个9)。返回0表示没有数字。
summer_69([1, 3, 5]) --> 9
summer_69([4, 5, 6, 7, 8, 9]) --> 9
summer_69([2, 1, 6, 9, 11]) --> 14这就是问题所在。我一直在尝试使用列表切片来解决这个问题,但一直无法解决。注意:9只能跟在6后面,不能在6之前。
这就是我的逻辑-我找到了索引6,并将它赋给了一个变量,然后我找到了变量9,并给它赋了一个变量。其他两个条件都得到了满足,但是9的条件无论我怎么尝试都不能得到满足。
这是我这边的一些代码。请原谅我糟糕的编程技术。
def summer_69(arr):
if 6 not in arr:
return sum(arr)
elif 6 and 9 in arr:
i = arr.index(6)
y = arr.index(9)
sxy = sum(arr[i:y])
return sum(arr) - sxy
else:
i = arr.index(6)
return sum(arr[:i])对于数组4,5,6,7,8,9,我得到的输出是18。
发布于 2019-09-19 10:46:17
无需切片即可完成。
def summer_69(l):
sign, count = False, 0
for num in l:
if num == 6:
sign = True
if not sign:
count += num
if num == 9:
sign = False
return count发布于 2021-01-17 23:17:34
我的解决方案是:
def sum67(nums):
add = True
sum1 =0
for i in range(len(nums)):
if add:
if nums[i] == 6:
add = False
else:
sum1 += nums[i]
else:
if nums[i] == 7:
add= True
return sum1https://stackoverflow.com/questions/58002842
复制相似问题