KMP 各种类型总结

以下是几种KMP类型题:

A.类型1:匹配子字符串在母串中第几个位置开始出现。

B.类型2:子串在母串中出现了几次(可以有重复的)。

eg:子串:AZA

母串:AZAZAZA

ans = 3;

C.类型3:母串中最多有几个子串。

eg:母串:aaaaa   

子串:aa   

ans=2,    最多2个

D.类型4:求最小循环节有几个。

eg: aabaabaabaab

最小循环节:aab

循环:4次

E.类型5:当前最小循环节中字符串的个数(不可以补字符串)。

eg:aabaabaabaab,可分为

aa       (字符串长度:2,最小循环节:a,次数:2),

aabaab     (字符串长度:6,最小循环节:aab,次数:2),

aabaabaab     (字符串长度:9,最小循环节:aab,次数:3),

aabaabaabaab    (字符串长度:12,最小循环节:aab,次数:4)

F.类型6:需要再补几个字符能构成一个类似手链那样循环相同的。

eg:abca ->2

abcde->5

aaa->0

G.类型7:给出一字符串,找出由2个或2个以上相同的子字符串组成的前缀,输出前缀长度及其相同的子字符串数。

猜你喜欢

转载自blog.csdn.net/qq_41555192/article/details/81813393