CF1999D Slavic's Exam
题目描述
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" 都会被识别为肯定回答)。
如果存在多种答案,你可以输出其中任意一种。
说明/提示
由 ChatGPT 4.1 翻译