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

标签 c++ string algorithm search

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

是否有任何有效的算法可以以尽可能少的处理和困惑来完成它? 我应该使用 string.h 还是使用 char 数组更好? 关于如何开始的任何提示/有用的片段等?

发送

最佳答案

我建议您从该文件创建一个后缀树。这将相对于文件的大小具有线性复杂性,并将解决问题。您可以稍微修改算法以存储除了字符串本身之外字符串遇到的次数。这是一个great post解释如何创建后缀树。

关于c++ - 使用 C++ 查找文件中的所有重复模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11099739/

相关文章:

string - 如何以尽可能小的可打印方式表示 32 字节的二进制数据

c++ - g++ 选项显示哪些类是从模板创建的

c# - 为什么 ToUpperInvariant() 比 ToLowerInvariant() 快?

时间:2019-03-08 标签:c++rand()%100

c++ - wchar_t* 到字符串的转换

algorithm - 洗牌算法之间的区别

mysql - 高效遍历关系数据库中以表形式存储的图

算法在递归方程的另一边找到 O(n) 和两个 T(n)

c++ - 为什么 std::atomic 对象不可复制?

c++ - SDL 程序卡住