#CF1999D. Slavic's Exam

    ID: 6912 传统题 1000ms 256MiB 尝试: 2 已通过: 1 难度: 10 上传者: 标签>贪心模拟字符串CodeforcesCodeforces Round 964(Div4)Div4DCF1999D1100

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" 都会被识别为肯定回答)。

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

样例

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

样例说明

由 ChatGPT 4.1 翻译

来源

Codeforces 1999D,英文题名 Slavic's Exam。