民生科技917笔试交流
题目:
有一个数组,要是相邻的两个数加起来是10的倍数,那么可以删掉这两个数,后面的数会顶上来
求:
最多可以删除多少个数字
n = int(input()) lis = list(map(int,input().strip().split())) global m #全局变量,统计迭代次数 m = 0 def fun(num, ind): #消消乐,消除到不能消为止 global m if (num[ind] + num[ind + 1]) % 10 == 0: num.pop(ind) num.pop(ind) m += 1 ind -= 1 if ind >= 0: fun(num, ind) else: return else: return p = False x = 0 while True: k = len(lis) if k <= 1: break for i in range(x, k - 1): if (lis[i] + lis[i + 1]) % 10 == 0: x = i #定位下一次遍历开始的位置 p = True fun(lis, i) x -= m m = 0 break if not p: break p = False print(n - len(lis))
if (num[ind] + num[ind + 1]) % 10 == 0:这一句indexerror,检查了30分钟也没找出来问题是啥,求路过的大佬帮忙看看