python-3.x - CodingBat Python - 清单 2 总和(67)
问题描述
返回数组中数字的总和,除了忽略以 6 开头并延伸到下一个 7 的数字部分(每个 6 后面至少有一个 7)。如果没有数字,则返回 0。
请帮助我解决问题。对于其他输入值,我得到正确的输出值..并且还建议我编写代码的简短方法..似乎有点太长了
def sum67(nums):
count=0
i=0
switch = 0
if len(nums) == 0:
count=0
else:
while i < len(nums):
if nums[i] != 6 and switch == 0 and nums[i] != 7:
count += nums[i]
i+=1
#print("incremented")
continue
if nums[i] == 6 and switch == 0:
switch = 1
#print("switch ON")
i+=1
if nums[i] == 6 and switch == 1:
i+=1
if nums[i]==7 and switch==0 :
count+=nums[i]
#print("again 7")
i+=1
if switch == 1 and nums[i] == 7:
switch = 0
#print("switch OFF")
i+=1
else:
i+=1
#print(count)
return count
输出:输入 1:sum67([2, 7, 6, 2, 6, 7, 2, 7]) 预期:18
输出我得到:20
输入 2:sum67([2, 7, 6, 2, 6, 2, 7]) 预期:9 我得到的输出:11
解决方案
试试这个:
def sum67(nums):
result = 0
startadding = True
for val in nums:
if val == 6:
startadding = False
if startadding:
result +=val
if val == 7:
startadding = True
return result
print(sum67([2, 7, 6, 2, 6, 7, 2, 7]))
推荐阅读
- json - Flutter - 在使用 Future 加载本地 JSON 时设置加载动画
- scala - Spark 未连接到独立集群中的主 IP 地址
- react-native-navigation - 未出现带有 createBottomTabNavigator、标题或选项卡的 createStackNavigator
- python - “UnboundLocalError:分配前引用了局部变量‘TimerOnOff’”
- android - 如何在 Android Studio 中使用 CameraX API 冻结相机图片?
- android - 调用 onTextChanged 时使用数据绑定为 EditText 加载 drawableLeft 图像
- python - Ubuntu:尝试让 oomox 工作时没有名为“gi”的模块
- visual-studio - Ubuntu 19.10 上的 Visual Studio 社区 2019
- angular - 在 Angular NGXS 中删除对象
- sql-server - 显示模式中所有表的主键而不是空列