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第三题 无重复的最长字串