CF1999D.Slavic's Exam

传统题 时间 2000 ms 内存 256 MiB 5 尝试 1 已通过 1 标签

Slavic's Exam

题目描述

Slavic 有一场非常艰难的考试,需要你的帮助才能通过。以下是他正在苦苦挣扎的问题:

存在一个字符串 ss,它由小写英文字母和可能为零个或多个 "?" 组成。

Slavic 被要求将每个 "?" 替换为一个小写英文字母,使得字符串 tt 成为字符串 ss 的一个子序列(不一定连续)。

请输出任意一个满足条件的字符串,或者如果不存在满足条件的字符串,则输出不可能。

输入格式

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

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

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

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

输出格式

对于每个测试用例,如果不存在满足条件的字符串,输出 "NO"(不带引号)。

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

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

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

说明/提示

由 ChatGPT 4.1 翻译

样例

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

在线编程 IDE

建议全屏模式获得最佳体验