Slavic's Exam

PDF 视图

提交程序


分数: 5
时间限制: 2.0s
内存限制: 256M

作者:
题目类型
问题描述

Slavic 有一场非常难的考试,需要你的帮助才能通过。下面是他正在努力解决的一个问题:

存在一个字符串 s,由小写英文字母组成,并且可能包含零个或多个 "?"。

Slavic 被要求将每个 "?" 更改为一个小写英文字母,使得字符串 t 成为字符串 s 的一个子序列(不一定是连续的)。

输出任何这样的字符串,或者在不存在满足条件的字符串时说明不可能。

输入

第一行包含一个整数 T(1 \leq T \leq 10^4)——测试用例的数量。

每个测试用例的第一行包含一个字符串 s(1 \leq |s| \leq 2 \cdot 10^5,且 s 仅由小写英文字母和 "?" 组成)——你拥有的原始字符串。

每个测试用例的第二行包含一个字符串 t(1 \leq |t| \leq |s|,且 t 仅由小写英文字母组成)——应当成为字符串 s 的子序列的字符串。

所有测试用例的 |s| 之和不超过 2 \cdot 10^5,其中 |x| 表示字符串 x 的长度。

输出

对于每个测试用例,如果不存在题目描述中所述的这样的字符串,则输出 "NO"(不带引号)。

否则,输出 "YES"(不带引号)。然后输出一行——满足所有条件的字符串。

你可以以任何大小写输出 "YES" 和 "NO"(例如,字符串 "yEs"、"yes" 和 "Yes" 都将被识别为肯定回答)。

如果存在多个答案,你可以输出任意一个。

样例输入
5
?????
xbx
ab??e
abcde
ayy?x
a
ab??e
dac
paiu
mom
样例输出
YES
xabax
YES
abcde
YES
ayyyx
NO
NO

评论

目前没有评论。