c++ - 如何查找并返回 vector 中的重复序列

标签 c++ vector

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

0 1 1 2 3 1 0 1 1 2 3 1 0 1 1 2 

并且该 vector 中的重复序列是:

0 1 1 2 3 1

我如何搜索 vector 并找到那些元素。我想把找到的序列放在一个新的 vector 中。一开始我假设它只需要一个简单的 for 循环并检查数组中第一个和第二个元素的重复,所以在上面的例子中,当我到达 0 1 时我会退出循环时间,但问题是不能假定前 2 个元素将处于重复模式中,所以

0 1 2 3 2 3 2 3 2 3

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

最佳答案

一般(无限结果)不可能知道序列,因为这样的事情可能发生 100 万个 0 然后 1,在 1000 个零之后你会认为序列仅是零,但是如果 vector 是有限的 你可以这样写一些东西

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;

关于c++ - 如何查找并返回 vector 中的重复序列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32928668/

相关文章:

java - 访问存储在 vector 中的对象的变量

C++ 获取 vector 中 const char* [ ] 的长度

MATLAB 按值对两个向量进行排序

algorithm - 与矢量的角度

c++ - 使用 XCB 获取事件窗口的 WId

c++ - 尝试将 -I 选项与 g++ 一起使用

c++ - 比较 vector 中的队列大小

c++ - 如何有选择地使 QWidget 接受鼠标单击的焦点?

c++ - 函数返回值的内存分配和内存泄漏

c++ - 在返回二维数组 C++ 方面需要帮助,请