You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

不导入任何模块查找列表最长连续重复数字,修复long函数运行异常

问题修复方案

错误原因

long()函数存在两处逻辑缺陷:

  • 仅在遇到不同数字时才会将当前连续序列长度与历史最大值比较,列表末尾的连续序列不会触发该比较逻辑,导致示例中末尾的3个连续4没有被统计到
  • 连续计数的更新逻辑不严谨,计数和实际序列长度的对应关系存在偏差,相同数字累加后没有做最大值校验

修复后的代码

def long(lst):
    # 增加空列表防御逻辑,避免索引报错
    if not lst:
        return 0, None
    current_num = lst[0]
    current_count = 1  # 初始计数为1,对应已经存在的首个元素
    max_count = 1
    max_num = lst[0]
    for i in range(1, len(lst)):
        if lst[i] == current_num:
            current_count += 1
            # 相同数字累加后直接更新最大值,无需等待遇到不同数字
            if current_count > max_count:
                max_count = current_count
                max_num = current_num
        else:
            # 遇到不同数字,重置当前计数和比对基准值
            current_num = lst[i]
            current_count = 1
    return max_count, max_num

验证效果

替换原long()函数后,输入1 1 2 3 4 4 4 0时,输出结果符合预期:

List:  [1, 1, 2, 3, 4, 4, 4]
The number is:  4
The largest size of consecutive numbers:  3

内容的提问来源于stack exchange,提问作者No Uce

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 01:06:04