Python中高效识别字符串最长重复子串的方案求助
Python中高效识别字符串最长重复子串的方案求助
我现在在处理一个包含邮件对话链的数据集,每条链里的每封邮件都带有一个共同的页脚(footer),但不同邮件链的页脚内容各不相同。这些页脚篇幅很长,而且在同一条邮件链里会反复出现在每封邮件中。我想要把这些重复的页脚去掉,但因为不同链的页脚没有统一的固定内容,没法直接用静态匹配的方式来删除。
所以我想找一种Pythonic的方法,能够自动识别每条邮件链(也就是一个长字符串)里的最长重复子串——也就是我这里的目标页脚。这个方案不需要提前知道子串的具体内容。我之前查过不少相关问题,要么给出的方案不适用,要么是暴力破解的思路,算力消耗大、运行时间特别长,根本没法处理我手头的长邮件链。
我已经尝试过以下两种思路,但都不太理想:
- 用后缀树(或后缀数组)来查找最长重复子串,但处理大篇幅的邮件链时,资源占用实在太高,根本跑不动
- 实现字符串匹配的模式搜索算法,但感觉这种方法对长字符串来说过于复杂,效率也很低
我现在急需一种高效识别字符串中最长重复子串的方法,任何思路、建议或者可落地的实现方向都非常感谢!麻烦大家帮忙支支招!
备注:内容来源于stack exchange,提问作者CaptainHaddock
相关产品推荐
相关产品推荐

