【发布时间】:2015-10-03 23:52:28
【问题描述】:
我有一个动态填充的向量,并且总是包含一个重复序列,其中包含我不确定的字符和长度。例如,向量可能包含以下元素:
0 1 1 2 3 1 0 1 1 2 3 1 0 1 1 2
并且该向量中的重复序列是:
0 1 1 2 3 1
如何搜索向量并找到这些元素。我想把找到的序列放在一个新的向量中。起初我假设它只需要一个简单的 for 循环并检查数组中第一个和第二个元素的重复,所以在上面的情况下,当我第二次到达0 1 时我会退出循环,但问题是不能假设前 2 个元素将处于重复模式中,所以
0 1 2 3 2 3 2 3 2 3
可以是向量中的有效元素。有什么想法吗?
【问题讨论】:
-
stackoverflow.com/questions/11090289/…。这个问题相当于通过一些调整来找到最大的模式。在寻找最长的模式时,如果最后发现的模式小于新发现的模式,算法会丢弃它,但在您的情况下,如果新的较长模式不与旧模式重叠,您可能希望保留它。
-
你想要最长的重复序列,是吗?
-
@Beta 是的,这是正确的