鉴于数据 (17) HANWHA Q.PEAK DUO-G7 32517) HANWHA Q.PEAK DUO-G7 325) HANWHA Q.PEAK DUO-G7 325HANWHA Q.PEAK DUO-G7 325
,我只想提取 (17) HANWA Q.PEAK DUO-G7 325
。我正在查看的数据总是以这种奇怪的方式重复,尽管一些重复组被几个字符偏移,所以它不一定能够被硬编码。我唯一的想法是效率很低,两个大小不断增加的滑动窗口如下所示。
这是一个例子:
这里窗口 A 表示为 {},B 表示为 []。
字符串“ABCAB”
{A[BCA}B] - ABCA != BCAB, hit edge, decrement window size
{A[BC}A]B - ABC != BCA
{AB[C}AB] - ABC != CAB, hit edge, decrement window size
{A[B}C]AB - AB != BC
{AB}[CA]B - AB != CA
{AB}C[AB] - AB == AB, match found
这是 o(n^3) 并且我很好奇是否有我没有想到的更好的方法 - 也许对数据进行聚类?