题意
给定一个字符串S,找到另外一个字符串T,T既是S的前缀,也是S的后缀,并且在中间某个地方也出现一次,并且这三次出现不重合。求T最长的长度。 ## 题解 跑一遍KMP和扩展KMP,然后从大到小枚举所有的
T
使T
是S
的前缀和后缀,然后维护一段区间的extend
的最大值,由于T
是从大到小枚举的,所以区间是从小到大的。时间复杂度$ O(n) $ ## 代码
1 |
|
给定一个字符串S,找到另外一个字符串T,T既是S的前缀,也是S的后缀,并且在中间某个地方也出现一次,并且这三次出现不重合。求T最长的长度。 ## 题解 跑一遍KMP和扩展KMP,然后从大到小枚举所有的
T
使T
是S
的前缀和后缀,然后维护一段区间的extend
的最大值,由于T
是从大到小枚举的,所以区间是从小到大的。时间复杂度$ O(n) $ ## 代码
1 | #include <cstdio> |