You need to enable JavaScript to run this app. Python长字符串重复序列识别及出现间距计算实现
优惠活动
大模型
产品
解决方案
定价
更多

Python长字符串重复序列识别及出现间距计算实现

核心实现方案

原实现仅提取了三字符序列的字符串值、未存储每个序列对应的出现索引,因此无法计算重复序列的间隔距离。要完成间距计算,核心是在提取三元组时同步追踪每个序列的出现位置,具体落地逻辑如下:

  • 建立字典映射结构,key为三字符序列本身,value为该序列所有出现的起始索引列表
  • 遍历字符串的所有有效三字符切片位置,生成三元组并将对应起始索引追加到映射结构中
  • 筛选出出现次数≥2的三元组,计算同一三元组相邻两次出现的起始索引差值,即为要求的间距值
  • 按指定格式整理序列与间距的对应关系,生成最终输出列表

可直接运行的代码

from collections import defaultdict

A = "AEJXKWKJSSSJKZJLJLEJSSLKXMPPLSSKKDNEMSMLDMM"
# 存储每个三元组的所有出现起始位置
trigram_positions = defaultdict(list)

# 遍历所有有效切片位置(与原列表推导逻辑的切片范围完全一致)
for start_idx in range(len(A) - 2):
    trigram = A[start_idx:start_idx+3]
    trigram_positions[trigram].append(start_idx)

repeat_result = []
# 筛选重复序列并计算间距
for trigram, positions in trigram_positions.items():
    # 跳过仅出现一次的序列
    if len(positions) < 2:
        continue
    # 计算相邻出现位置的索引差,即间距
    for i in range(1, len(positions)):
        gap = positions[i] - positions[i-1]
        repeat_result.append(f"{trigram}:{gap}")

# 按要求格式输出
print(f"Repeat_Letter : [{', '.join(repeat_result)}]")

运行结果说明

针对给定测试字符串,代码会自动定位所有重复三字符序列,计算规则与示例中的间隔逻辑完全匹配。若某一三元组出现超过2次,代码会自动生成每一组相邻出现的间距值,无需额外调整。

  • 默认间距为两次出现的起始索引差值,若需要计算两个重复序列中间间隔的字符数量(不含序列本身),可将间距计算逻辑调整为 gap = positions[i] - positions[i-1] - 3

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.31 03:15:01