很久很久以前,在你刚刚学习字符串匹配的时候,有两个仅包含小写字母的字符串 和 ,其中 串长度为 , 串长度为 。可当你现在再次碰到这两个串时,这两个串已经老化了,每个串都有不同程度的残缺。
你想对这两个串重新进行匹配,其中 为模板串,那么现在问题来了,请回答,对于 的每一个位置 ,从这个位置开始连续 个字符形成的子串是否可能与 串完全匹配?
Constraints
Solution
首先将 * 号的值置为 ,那么对于两个长度皆为 的串,若 ,则两个串可以完全匹配。
此时若将 串翻转,并枚举在 串中的结尾位置,则可得:
直接 FFT 即可,注意卡常。
Code
1 |
|