您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

Python在整数列表中找到重复序列?

Python在整数列表中找到重复序列?

通过迭代2到一半序列长度之间的猜测来猜测序列长度。如果未发现任何模式,则认返回1。

def guess_seq_len(seq):
    guess = 1
    max_len = len(seq) / 2
    for x in range(2, max_len):
        if seq[0:x] == seq[x:2*x] :
            return x

    return guess

list_a = [111,0,3,1,111,0,3,1,111,0,3,1] 
list_b = [67,4,67,4,67,4,67,4,2,9,0]
list_c = [1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,23,18,10]

print guess_seq_len(list_a)
print guess_seq_len(list_b)
print guess_seq_len(list_c)
print guess_seq_len(range(500))   # test of no repetition

得到(如预期):

4
2
10
1

根据要求,此替代方法可提供最长的重复序列。因此,它将为list_b返回4。唯一的变化是guess = x不是return x

def guess_seq_len(seq):
    guess = 1
    max_len = len(seq) / 2
    for x in range(2, max_len):
        if seq[0:x] == seq[x:2*x] :
            guess = x

    return guess
python 2022/1/1 18:47:56 有584人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶