2154: 匹配电话号码

内存限制:512 MB 时间限制:2 S 标准输入输出
题目类型:传统 评测方式:文本比较 上传者:
提交:5 通过:1

题目描述

给定一个电话本,包含 N 个电话号码,每个电话号码长度为 9。
现在进行 Q 次询问,每次询问一个字符串 s 最多能匹配多少个电话号码
匹配规则如下:
  • s 中仅包含数字 0-9、*、和 ?;
  • ? 表示某一位数字被遮挡
  • * 表示一个数字或者多个连续的数字被遮挡
  • s 中 * 和 ? 不会同时出现
  • s 中最多出现 1 个 * 或者 2 个 ?。

输入格式

输入第一行为正整数 N,1 ≤ N ≤ 10000。
接下来 N 行,每行一个长度为 9 的数字字符串表示给定的电话号码,允许存在前导 0。
接下来输入一行包含正整数 Q,1 ≤ Q ≤ 300000。
接下来 Q 行,每行一个字符串表示询问字符串 s。

输出格式

输出 Q 行,对于每组询问输出一个整数表示最多可以匹配的电话号码数量。

输入样例 复制

样例1:
2
728147956
606327482
2
72814?956
622629145

样例2:
4
606200400
606200500
606300500
706200400
3
?06200400
6*00
606?00?00

输出样例 复制

样例1:
1
0

样例2:
2
3
3

数据范围与提示

来源:2022 CTU Open