CF1796B.Asterisk-Minor Template

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

Asterisk-Minor Template

题目描述

给定两个仅由小写拉丁字母组成的字符串 aabb

一个模板 tt 是仅由小写拉丁字母和星号(字符 '*')组成的字符串。如果模板中星号的数量不超过字母的数量,则称其为“星号-次要模板”。

如果可以将模板 tt 中的每个星号替换为任意小写拉丁字母组成的字符串(可以为空串),使其变为字符串 ss,则称字符串 ss 匹配模板 tt

请你构造一个星号-次要模板,使得 aabb 都能匹配该模板,或者报告不存在这样的模板。如果有多个答案,输出任意一个即可。

输入格式

第一行包含一个整数 tt1t1041 \le t \le 10^4),表示测试用例的数量。

每个测试用例的第一行包含一个字符串 aa1a501 \le |a| \le 50,其中 a|a| 表示 aa 的长度),仅包含小写拉丁字母。

第二行包含一个字符串 bb1b501 \le |b| \le 50),仅包含小写拉丁字母。

输出格式

对于每个测试用例,如果不存在一个星号-次要模板使得 aabb 都能匹配,输出一行 "NO"。

否则,第一行输出 "YES",第二行输出任意一个满足条件的模板。模板只能包含小写拉丁字母和星号(字符 '*'),且星号数量不超过字母数量。

说明/提示

在第一个测试用例中,对于模板 "*b",你可以将唯一的星号替换为 "aaa" 得到 "aaab"(等于 aa),或替换为 "zzz" 得到 "zzzb"(等于 bb)。

在第三个测试用例中,模板 "*o*" 不是星号-次要模板,因为它包含的星号数量多于字母数量。不存在能同时匹配 aabb 的星号-次要模板。

在第四个测试用例中,对于模板 "a*a*a*a",你可以将所有星号替换为空串得到 "aaaa"(等于 aa),或将其中两个星号替换为 "a",其余两个替换为空串得到 "aaaaaa"(等于 bb)。

在第五个测试用例中,模板 "abcd" 中没有星号,因此只有 "abcd" 能匹配它(恰好 aabb 都等于 "abcd")。

由 ChatGPT 4.1 翻译

样例

6
aaab
zzzb
codeforces
atcoder
codeforces
tokitlx
aaaa
aaaaaa
abcd
abcd
c
f
YES
*b
YES
*co*
NO
YES
a*a*a*a
YES
abcd
NO

在线编程 IDE

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