使用C++查找文件中的所有重复模式

Sab*_*ang 1 c++ string algorithm search

我正在寻找一种方法来查找输入文件中包含至少3个字符的所有重复序列,然后打印出最频繁的序列!它似乎需要大量的字符串处理和对输入文件的强烈搜索,特别是因为要查找的模式的最大大小没有上限!

是否有任何有效的算法以尽可能少的处理和混乱来做到这一点?我应该使用string.h还是使用char数组更好?关于如何开始的任何提示/有用的片段等?

TNX

izo*_*ica 5

我建议你从文件中创建一个后缀树.这将具有与文件大小相关的线性复杂性,并将解决问题.您可以稍微修改算法,以存储字符串与字符串本身相遇的次数.这是一篇很好的文章,解释了如何创建后缀树.