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

标签 python list

问题:

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

相关文章:

python - WindowsError:在脚本中保存 FreeImagePy 图像时出现特权指令,在 IDLE 中工作

java - 为什么Java的sort实现在排序之前先将列表转换为数组?

java - 在Java中对列表进行排序的方式相同,id出现在数组中

python - Matplotlib:以图像作为注释的 3D 散点图

python - 如何根据列的值将小型 pandas.dataframe 融合为较大的 pandas.dataframe ?

html - 对齐方式与其他元素不同的列表元素

R递归获取任意深度嵌套列表的第一个元素的名称

android - ScrollView 不工作

python - Django开发IDE

python - 创建 Slack 机器人来回答请求