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

如何查找数组中每间隔4个位置重复出现的数字?

查找数组中间隔4个位置重复出现的数字

你的代码存在几个明显问题:

  • 语法错误:arr[i + 8] == arr[i + 12 : 缺少闭合的]和),且此处应取单个元素arr[i+12]而非切片
  • 索引越界:未限制循环中i的范围,当i+12超过数组最大索引时会触发报错
  • 逻辑偏差:循环从0开始以4为步长,会漏掉像索引1这样的起始位置,而目标数字5正是从索引1开始间隔4重复的

修正后的代码如下:

arr = [4, 5, 2, 1, 1, 5, 1, 8, 3, 5, 0, 7, 2, 5, 6, 5, 8]
size = len(arr)

# 遍历每个可能的起始索引
for i in range(size):
    current_num = arr[i]
    next_pos = i + 4
    repeat_count = 1  # 初始包含当前位置
    # 持续检查间隔4的后续位置
    while next_pos < size:
        if arr[next_pos] == current_num:
            repeat_count += 1
            next_pos += 4
        else:
            break
    # 至少重复4次(对应4个间隔4的位置)才输出
    if repeat_count >= 4:
        print(current_num)
        break  # 若需输出所有符合条件的数字可移除该行

代码说明:

  • 遍历数组每个索引作为起始点,逐一检查后续每隔4位的元素是否一致
  • 统计重复次数,当重复次数达到4次时输出目标数字
  • 运行后会输出预期结果5

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 01:05:18