编写一个函数 expanding(l),将整数 l 的列表作为输入,如果每对相邻元素之间的绝对差严格增加,则返回 True。
我尝试执行这段代码,但它没有为某些列表返回正确的值。
def expanding(l):
for i in range(0,len(l)-3):
if (abs(l[i+2]-l[i+1])>abs(l[i+1]-l[i])):
Answer=True
else:
Answer=False
return Answer
expanding([1,3,7,2,-3]) 应该是 False 但输出是 True。
请您参考如下方法:
使用一个临时变量来存储差异,一旦达到非递增差异就退出。
def expanding(l):
dif = abs(l[1] - l[0])
for i in range(1, len(l)-1):
temp = abs(l[i+1] - l[i])
# Non-increasing difference, return
if temp < dif:
return False
else:
dif = temp
# All differences are increasing
return True
