SZTG-L-P4173. 残缺的字符串

提交1 通过1
通过率100%
时间限制2000ms
内存限制128MiB

题目描述

题目描述

很久很久以前,在你刚刚学习字符串匹配的时候,有两个仅包含小写字母的字符串 AA 和 BB,其中 AA 串长度为 mm,BB 串长度为 nn。可当你现在再次碰到这两个串时,这两个串已经老化了,每个串都有不同程度的残缺。

你想对这两个串重新进行匹配,其中 AA 为模板串,那么现在问题来了,请回答,对于 BB 的每一个位置 ii,从这个位置开始连续 mm 个字符形成的子串是否可能与 AA 串完全匹配?

输入格式

第一行包含两个正整数 m,nm,n,分别表示 AA 串和 BB 串的长度。

第二行为一个长度为 mm 的字符串 AA。

第三行为一个长度为 nn 的字符串 BB。

两个串均仅由小写字母和 *\texttt * 组成,其中 *\texttt * 表示相应位置已经残缺,每个 *\texttt * 都可以匹配任意单个小写字母。

输出格式

第一行包含一个整数 kk,表示 BB 串中可以完全匹配 AA 串的位置个数。

若 k>0k>0,则第二行输出 kk 个正整数,从小到大依次输出每个可以匹配的开头位置(下标从 11 开始)。

3 7
a*b
aebr*ob
2
1 5

说明 / 提示

数据范围

100%100\% 的数据满足 1≤m≤n≤3×1051 \le m \le n \le 3 \times 10^5。