我正试图解决这个问题,我无法达到线性时间。
如果字符串T可以在表单中表示,则称其为字段 T = PPP..P。
设计一个线性时间algorthim来决定是否a 如果T是周期性的,如果是真的,找到最短的周期。
我的方法:
如果T=AB=BA
然后T
是periodical
,我的算法会继续检查字符串是否可以表示,如果是,那么我检查它的一半。
它需要O(n*log(n)) time
。
谢谢你们
答案 0 :(得分:0)
KMP搜索算法在一定程度上计算了最长的子字符串,它既是前缀又是后缀(短于整个字符串)。
如果您将它应用于期刊字符串,您将获得
isinstance(C, typing.Callable)
len(substring)必须是> len(string)/ 2,否则没有句号。
发现的时期也将是最短的时期。
KMP是线性的。
请查看(wikipedia)。