Description
对于100%的测试点,1<=N<=100,1<=M<=100000。
Analysis
我们可以把A串视为一些串中间隔着一些星号。
显然,A串头尾都没有星号是有星号的特殊情况。因为无星号可以跳过头尾的串变成头尾都是星号。
下图,上者A,下者B。
我们可以对于A串中的小串与B串做一次KMP,搞一个
bz[i][j]
b
z
[
i
]
[
j
]
表示第i个小串是否能与B的第j个位置往后相应长度匹配。再搞一个
f[i][j]
f
[
i
]
[
j
]
表示第j个位置及其右边的第一个能与A串的i小串相匹配的位置。这样一直跳,跳,跳即可。时间复杂度是
O(nm)
O
(
n
m
)
的。