鱼C论坛

 找回密码
 立即注册
查看: 5149|回复: 8

[已解决]python 怎么判断连续的数字

[复制链接]
发表于 2018-3-7 10:00:47 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
比如生成一个列表list[6, 6, 0, 4, 8, 7, 6, 4, 7, 5]
要输出最大的一组连续的数字 [4, 8, 7, 6, 4, 7, 5]

最佳答案
2018-3-7 10:36:34
  1. def iscon(L):
  2.     a=max(L)
  3.     b=min(L)
  4.     if a-b+1==len(set(L)) and len(L)>1:
  5.         return True
  6.     else:
  7.         return False

  8. def f(a):
  9.     b=[]
  10.     c=[]
  11.     for i in range(len(a)):
  12.         j=len(a)
  13.         while j>i:
  14.             if iscon(a[i:j]):
  15.                 b.append(a[i:j])
  16.                 c.append(j-i+1)
  17.                 break
  18.             j-=1
  19.     for k in range(len(c)):
  20.         if c[k] == max(c):
  21.             return b[k]
  22. print(f([1,2,0,1,2,3,9,8,7,10,11,12,13]))
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2018-3-7 10:01:55 | 显示全部楼层
你所谓的“连续的数字”是什么规则?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-7 10:04:02 | 显示全部楼层
你这怎么算连续,怎么算最大
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-7 10:36:34 | 显示全部楼层    本楼为最佳答案   
  1. def iscon(L):
  2.     a=max(L)
  3.     b=min(L)
  4.     if a-b+1==len(set(L)) and len(L)>1:
  5.         return True
  6.     else:
  7.         return False

  8. def f(a):
  9.     b=[]
  10.     c=[]
  11.     for i in range(len(a)):
  12.         j=len(a)
  13.         while j>i:
  14.             if iscon(a[i:j]):
  15.                 b.append(a[i:j])
  16.                 c.append(j-i+1)
  17.                 break
  18.             j-=1
  19.     for k in range(len(c)):
  20.         if c[k] == max(c):
  21.             return b[k]
  22. print(f([1,2,0,1,2,3,9,8,7,10,11,12,13]))
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-7 10:48:28 | 显示全部楼层
看不懂
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-3-7 10:48:49 | 显示全部楼层
BngThea 发表于 2018-3-7 10:01
你所谓的“连续的数字”是什么规则?

是这个列表里最长的一组数字,并且是一组没有间隙的整数
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-3-7 10:57:46 | 显示全部楼层

不好意思我没有说清楚,就是从这个列表里面输入 最长的一串数字,并且数字都是连续的
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-3-7 11:12:03 | 显示全部楼层

抱歉怪我没有说清楚,但是刚刚试了一下,这个可以!! 超感谢大神~
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-3-7 12:05:37 | 显示全部楼层

再问一下,请问c[k]和b[k]是什么意思呢?
b=[[5,6,7,8]] 为啥b[k]就变[5,6,7,8]了?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2026-3-8 07:23

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表