python 最长重复出现字串

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python 最长重复出现字串相关的知识,希望对你有一定的参考价值。

"""
input: canffcancd
output: can

solution: suffix array
"""


def longestRepeatedSubStr(s):
    if len(s) < 1:
        return ""
    sufStr = list(sorted([s[i:] for i in range(len(s))]))
    maxSubStr, maxLen = s[0], 1
    for i in range(len(sufStr)-1):
        length = 0
        minLen = min(len(sufStr[i]), len(sufStr[i+1]))
        while length < minLen and sufStr[i][length] == sufStr[i+1][length]:
            length += 1
        if length > maxLen:
            maxSubStr, maxLen = sufStr[i][:length], length
    return maxSubStr


def main():
    s = "canffcancd"
    maxSubStr = longestRepeatedSubStr(s)
    print(maxSubStr)


if __name__ == "__main__":
    main()

以上是关于python 最长重复出现字串的主要内容,如果未能解决你的问题,请参考以下文章

[leetcode]3无重复字符的最长字串

python 最先出现的最长公共字串

《LeetCode之每日一题》:78.无重复字符的最长字串

每日一题-Day10-无重复最长字串

POJ 1743-POJ - 3261~后缀数组关于最长字串问题

leetcode第三题 无重复的最长字串