#4016. match

match

问题描述

兔子们在玩两个串的游戏。给定两个字符串S和T,兔子们想知道T在S中出现了几次,分别在哪些位置出现。注意T中可能有“?”字符,这个字符可以匹配任何字符。

输入格式

两行两个字符串,分别代表S和T。

输出格式

第一行一个正整数k,表示T在S中出现了几次。

接下来k行正整数,分别代表T每次在S中出现的开始位置。按照从小到大的顺序输出,S下标从0开始。

样例

ababcadaca
a?a
3
0
5
7

数据范围

  • 对于10%的数据, S和T的长度不超过100
  • 对于另外20%的数据,T中无“?”
  • 对于100%的数据,S长度不超过10510^5,T长度不会超过S。S中只包含小写字母,T中只包含小写字母和“?”

来源

  • 2014年江苏省队选拔
  • 信息学奥赛之数学一本通
  • stong9070整理