#158. 通配符

通配符

附加文件

题目描述

通配符通常有星号( * )和问号( ? )两种,其中 * 可以代表任何字符串,能匹配零个、单个或多个任意字符;而 ? 仅代表单个字符,且此字符必须存在,即 ? 可以恰好匹配一个任意字符。在查找数据时,当不知道真正字符或者懒得输入完整数据时,常常使用通配符代替一个或多个真正的字符。

现在给定一个包含通配符的字符串 S,并给出若干个不含通配符的字符串,问 S 能否匹配这些字符串?

输入格式

第一行:S。S 中除了通配符外全部为小写英文字母。

第二行:一个整数 n,表示待匹配字符串的个数。

接下来 n 行,每行一个仅包含小写英文字母的待匹配字符串。

输出格式

输出 n 行,每行为 YESNO,表示对应字符串能否被 S 匹配。

样例输入

*aba?bcb
3
abaabacbcb
abacbcb
aggggbaabbcbc

样例输出

YES
YES
NO

提示

对于 30% 的数据:所有字符串长度不超过 1000

对于 100% 的数据:所有字符串长度不超过 100000,1 ≤ n ≤ 100,通配符个数不超过 10