如何在向量中查找并返回重复序列

时间:2015-10-03 23:52:28

标签: c++ vector

我有一个动态填充的向量,并且总是包含一个重复序列,其中包含我不确定的字符和长度。例如,向量可以包含以下元素:

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时我将退出循环,但是问题是不能假设前两个元素将处于重复模式中,所以

0 1 2 3 2 3 2 3 2 3

可以是向量中的有效元素。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

一般来说(无限结果)不可能知道序列,因为类似的东西可能发生在1百万0然后1,在1000零之后你会认为序列只有零,但是如果向量是有限的 你可以写一些像这样的想法

for(I..VECTORSIZE / 2)
if(VECTORSIZE  % I == 0)
 CHECK IF SUBVECTOR(0,I) == SUBVECTOR(I,I*2) == SUBVECTOR(I*2,I*3)....
    return I
else continute;