Skip to main content
 首页 » 编程设计

python之数组中数字的总和,不包括 13 和它后面的数字(CodingBat 谜题)

2025年05月04日9unruledboy

问题:

返回数组中数字的总和,对于空数组返回 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)