#T066. 字符串修改

字符串修改

题目描述

给定一个字符串 ss,它由小写英文字母和任意个 ? 组成。

现在小田被要求将每个 ? 更改为任意的小写英文字母,使得字符串 tt 是字符串 ss 的子序列。

输入更改后的满足条件的字符串 ss,如果无法把字符串 ss 改为符合要求的,输出 NO

输入

第一行包含一个整数 tt,代表测试样例的组数。 (1t50001 \le t \le 5000)

对于每组测试样例:

第一行输入字符串 ss,只由小写英文字母和 ? 组成,1s2×1051 \le |s| \le 2 \times 10^5

第二行输入字符串 tt,只由小写英文字母组成,1ts1 \le |t| \le |s|

数据保证所有的 s|s| 总和不超过21052 \cdot 10^5.

输出

对于每组测试样例:

如果没有合适的方案,则输出 NO

如果有,那么输出两行。

第一行输出 YES

第二行输出被修改后的字符串 ss,如果有多种修改方案,你只需要输出任意一种。

5
?????
xbx
ab??e
abcde
ayy?x
a
ab??e
dac
paiu
mom
YES
xabax
YES
abcde
YES
ayyyx
NO
NO