#CSPA0002. AC鸭找子串

AC鸭找子串

题目描述

AC鸭有两个字符串 s 和 t,他想要更改字符串 s 中的一些字符,使他可以在 t 中找到 s 作为子字符串。所有更改的要求是:在字符串 s 中选择一个字符,并用问号”?“替换它,之后这个问号可以表示任何字符。例如,如果他更改后的字符串 s=“ab? b”,它可以是字符串 t=“aabrbb”的子字符串。确保字符串 s 的长度不超过字符串的长度。帮助AC鸭替换尽可能少的字符,以便 s 可以在中作为子字符串找到。

输入

第一行包含两个整数 n 和 m (1≤n≤m≤1000) 代表字符串 s 的长度和字符串 t 的长度。

第二行包含n个小写英文字母的字符串 s。 第三行包含m个小写英文字母的字符串 t。

输出

在第一行中,打印单个整数 k 代表需要替换的最少字符数。

在第二行中,按顺序打印 k 个不同的整数,这些整数表示需要替换的字符在字符串 s 中的位置。位置编号从 1 开始,如果有多种方案的替换数都是最少的,输出最先与字符串匹配(匹配的子串在中出现位置最靠左)的更改方案。

3 5
abc
xaybz
2
2 3
4 10
abcd
ebceabazcd
1
2