atcoder#ABC287D. [ABC287D] Match or Not

[ABC287D] Match or Not

题目描述

英小文字と ? からなる文字列 S,T S,T が与えられます。ここで、S > T |S|\ \gt\ |T| が成り立ちます(文字列 X X に対し、 X |X| X X の長さを表します)。

また、X=Y |X|=|Y| を満たす文字列 X,Y X,Y は、次の条件を満たすとき及びそのときに限りマッチするといいます。

  • X,Y X,Y に含まれる ? をそれぞれ独立に好きな英小文字に置き換えることで X X Y Y を一致させることができる

x=0,1,,T x=0,1,\ldots,|T| に対して次の問題を解いてください。

  • S S の先頭の x x 文字と末尾の Tx |T|-x 文字を順番を保ったまま連結することで得られる長さ T |T| の文字列を S S' とする。S S' T T がマッチするならば Yes と、そうでなければ No と出力せよ。

输入格式

入力は以下の形式で標準入力から与えられる。

S S T T

输出格式

T+1 |T|+1 行出力せよ。
i i 行目には x=i1 x=i-1 に対する出力をせよ。

题目大意

给定两个字符串 SSTT(其中 S|S| 表示字符串 SS 的长度),对于 x=0,1,...,Tx=0,1,...,|T| 依次求解如下问题:

UUSS 的前 xx 个字符与最后 Tx|T|-x 个字符组成的字符串,是否存在一种方式使得将 TTUU 中的每一个 ? 替换成任意的小写字母使得 T=UT=U?如果存在,输出 Yes,否则输出 No

数据范围:

对于 100%100\% 的数据:1T<S3×1051\leq |T|<|S|\leq 3\times 10^5SSTT 均只由小写字母和 ? 组成。

a?c
b?
Yes
No
No
atcoder
?????
Yes
Yes
Yes
Yes
Yes
Yes
beginner
contest
No
No
No
No
No
No
No
No

提示

制約

  • S,T S,T は英小文字と ? からなる文字列
  • 1  T < S  3 × 105 1\ \leq\ |T|\ \lt\ |S|\ \leq\ 3\ \times\ 10^5

Sample Explanation 1

x=0 x=0 の場合、S S' ?c となります。ここで、S S' 1 1 文字目の ?b に、T T 2 2 文字目の ?c に置き換えることで S S' T T を一致させることができるため、S S' T T はマッチします。このため、1 1 行目の出力は Yes です。 x=1,2 x=1,2 の場合は S S' はそれぞれ aca? であり、T T とマッチしません。このため、2,3 2,3 行目の出力は No です。