如何查找数组中每间隔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
相关产品推荐
相关产品推荐

