0

可能重复:
在字符串中查找最长的重复序列

我正在解决一个问题,我需要找到重复最多的模式。

为了简单和方便,请考虑这个字符串:

What is Lorem Ipsum?
Lorem Ipsum is simply dummy text of the printing and typesetting industry.
Lorem Ipsum has been the industry's standard dummy text ever since the 1500s...

重复最多的序列(例如,最初考虑字符串长度大于 3 个字符)是“Lorem Ipsum”。当然,“Lorem”和“Ipsum”也重复相同的次数,但是如果它们重复相同的次数,较长的字符串优先于较短的字符串。

什么样的算法可以有效地找到这种模式,最好是在 Python 中?

4

1 回答 1

0

正如@fraxel 所指出的,您需要更多地说明您的问题,但这听起来充其量是一个动态编程(http://en.wikipedia.org/wiki/Dynamic_programming)问题。但是,如果不进一步指定它,就不可能知道您需要哪种算法。例如,您制定模式定义中的另一个不确定性。模式是简单的字符串吗?或者“ababa”是否被视为与“acaca”相同的模式,因为它将匹配正则表达式或全局模式“a*a*a”。

于 2012-06-19T20:57:31.600 回答