作者:刘德华 | 来源:互联网 | 2023-10-13 08:45
I have a string S. How can I find if the string follows S = nT.
我有一个字符串S.我怎么能找到字符串是否遵循S = nT。
Examples:
Function should return true if
1) S = "abab"
2) S = "abcdabcd"
3) S = "abcabcabc"
4) S = "zzxzzxzzx"
示例:如果1)S =“abab”2)S =“abcdabcd”3)S =“abcabcabc”4)S =“zzxzzxzzx”,则函数应返回true
But if S="abcb" returns false.
但是如果S =“abcb”返回false。
I though maybe we can repeatedly call KMP on substrings of S and then decide.
我虽然也许我们可以在S的子串上反复调用KMP然后决定。
eg: for "abab": call on KMP on "a". it returns 2(two instances). now 2*len("a")!=len(s)
call on KMP on "ab". it returns 2. now 2*len("ab")==len(s) so return true
例如:对于“abab”:在“a”上拨打KMP。它返回2(两个实例)。现在2 * len(“a”)!= len(s)在“ab”上拨打KMP。它返回2.现在2 * len(“ab”)== len(s)所以返回true
Can you suggest any better algorithms?
你能建议更好的算法吗?
8 个解决方案