python - 我在哪里错了 Codingbat Python 练习?
问题描述
返回数组中数字的总和,除了忽略以 6 开头并延伸到下一个 7 的数字部分(每个 6 后面至少有一个 7)。如果没有数字,则返回 0。
def sum67(nums):
for i in range(len(nums)):
if nums[i] == 6:
nums[i] = 0
for j in range(len(nums)):
if nums[j] == 7:
nums[j] =0
nums[i:j+1] = 0
return sum(nums)
解决方案
def sum67(nums):
result = 0
skip = False
for num in nums:
if not skip:
if num == 6:
skip = True
else:
result += num
elif skip and num == 7:
skip = False
return result
if __name__ == '__main__':
assert sum67([1, 2, 2]) == 5
assert sum67([1, 2, 2, 6, 99, 99, 7]) == 5
assert sum67([1, 1, 6, 7, 2]) == 4
assert sum67([1, 6, 2, 2, 7, 1, 6, 99, 99, 7]) == 2
assert sum67([1, 6, 2, 6, 2, 7, 1, 6, 99, 99, 7]) == 2
assert sum67([2, 7, 6, 2, 6, 7, 2, 7]) == 18
assert sum67([2, 7, 6, 2, 6, 2, 7]) == 9
assert sum67([1, 6, 7, 7]) == 8
assert sum67([6, 7, 1, 6, 7, 7]) == 8
assert sum67([6, 8, 1, 6, 7]) == 0
assert sum67([]) == 0
assert sum67([6, 7, 11]) == 11
assert sum67([11, 6, 7, 11]) == 22
assert sum67([2, 2, 6, 7, 7]) == 11
推荐阅读
- node.js - 如何从一个集合中以不同状态从 mongodb 获取计数
- unix - 如何注册其他服务器上现有的 Clearcase 视图
- swift - 为什么我启用了 Metal API 但我的 Coreml 自定义层仍在 CPU 上运行
- java - Pico 容器异常:org.picocontainer.injectors.AbstractInjector$UnsatisfiableDependenciesException:?
- c++ - 计算两个整数的乘积作为下半部分和上半部分
- google-api - 从 Google+ API 访问集合数据
- python - 如何根据熊猫中的另一列值选择列值?
- ruby-on-rails - Ruby on Rails 5 ActiveJob retry_on、discard_on 捕获异常顺序
- schema.org - Schema.org 和对象层次结构
- css - 根据条件更改引导 col-width