Python程序设计——查找列表中连续递增序列的起始位置

来源:互联网 发布:淘宝网进入 编辑:程序博客网 时间:2024/05/19 23:25

问题:假如有这样一个列表[0,2,4,5,8,9,11,14,15,16,17,18,19,20,21,22,23,24],它的元素是整型且递增,从某项开始,是连续递增加1的,一直到列表末尾。比如该序列是从元素14开始连续递增,用Python实现一个程序,找到连续递增的起始位置(前提是不知道连续递增的起始元素是14)。

  • 分析
    列表中连续递增的部分序列,前驱和后继的差值等于元素下标的差值,需要设置两个for循环遍历列表,一个用来访问第i个元素另一个用来访问第pos个元素(pos=i+n,i>=0,n>0),通过元素差值与下标差值是否相等来判断是否连续,如果不相等则pos=pos+1并跳出一个for循环,相等则通过变量pos继续遍历至列表结束。

  • 程序

l=[0,2,3,5,8,9,11,14,15,16,17,18,19,20,21,22,23,24]pos=0for i in range(pos,len(l)):    for j in range(pos+1,len(l)):        if l[j]-l[i]!=j-i:            pos=i+1            break    if j==len(l)-1:        breakprint(pos,l[pos])
  • 结果
 7 14[Finished in 0.1s]
原创粉丝点击