问题:
返回数组中数字的总和,对于空数组返回 0。除了数字 13 非常不吉利,所以它不算数,紧跟在 13 之后的数字也不算数。
我的代码:
def sum13(nums):
l = len(nums)
tot = 0
if l==0:
return 0
for x in range(l):
if nums[x]!=13:
if nums[x-1]!=13:
tot+=nums[x]
return tot
失败的地方:
sum13([1, 2, 2, 1, 13]) should → 6, but my code is outputting 5
sum13([1, 2, 13, 2, 1, 13]) should → 4, but my code is outputting 3
最佳答案
解决方法如下:
def sum13(nums):
if len(nums) == 0:
return 0
for i in range(0, len(nums)):
if nums[i] == 13:
nums[i] = 0
if i+1 < len(nums):
nums[i+1] = 0
return sum(nums)
关于python - 数组中数字的总和,不包括 13 和它后面的数字(CodingBat 谜题),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14901265/