【发布时间】:2014-02-05 18:55:37
【问题描述】:
我从用户那里得到一个输入,它是一个带有某个子字符串的字符串,该子字符串在整个字符串中重复。我需要输出子字符串或其长度 AKA 句点。
说
S1 = AAAA // substring is A
S2 = ABAB // Substring is AB
S3 = ABCAB // Substring is ABC
S4 = EFIEFI // Substring is EFI
我可以从单个字符开始并检查它是否与下一个字符相同,如果不是,我可以用两个字符然后用三个等等。这将是一个 O(N^2) 算法。我想知道是否有更优雅的解决方案。
【问题讨论】:
-
为什么 S2 子串不是 AB?
-
现在我对 S3 感到困惑。 ABC 不重复,或者这也是一个错字?对不起,我很挑剔,我只是想弄清楚你想要输出什么。
-
嗯,输入字符串中的每个字符都是重复子字符串的一部分。字符串长度是多少无关紧要。 @csmckelvey
-
对于字符串 "abababxxxxabababxxxx",龟兔赛跑给你周期 2,而实际周期是 10。
标签: string algorithm substring