通配符匹配
测试数据来自 system/1172
作业已超过截止时间,您无法递交本题目。
时间限制:1秒 内存限制:256M
【问题描述】
通配符是一类键盘字符,当我们不知道真正字符或者不想键入完整名字时,常常使用通配符代替一个或多个真正字符。通配符有问号(?)和星号( * )等,其中,“?”可以代替一个字符,而“*”可以代替零个或多个字符。
你的任务是,给出一个带有通配符的字符串和一些不带通配符的字符串,判断他们是否能够匹配。
例如,1?456 可以匹配 12456、13456、1a456,但是却不能够匹配23456、1aa456;
2*77?8可以匹配 24457798、237708、27798。
【输入格式】
第一行是一个由英文字母、数字符号上述通配符组成的字符串。
第二行包含一个整数 \(N\) ,表示字符串个数。
接下来 \(N\) 行,每行为一个是由英文字母、数字符号组成的符串。
【输出格式】
如果两者可以匹配,就输出“YES”,否则输出“NO”
【输入输出样例】
Input
1*456?
3
11111114567
100456
1456s
Output
YES
NO
YES
【数据限制】
\(N \le 10\),所有字符串长度不超过2000。
【来源】
Mr.he