#include<cstdio>
const int maxn = 100;
char S[maxn][5], temp[5];
int hashTable[26 * 26 * 26 + 10];
int hashFunc(char S[], int len) { // 将字符串转换为整数
int id = 0;
for (int i = 0; i < len; i++) {
id = id * 26 + (S[i] - 'A');
}
return id;
}
int main() {
int n, m;
scanf_s("%d %d", &n, &m);
for (int i = 0; i < n; i++) {
scanf_s("%s", S[i],5);
int id = hashFunc(S[i], 3); // 将字符串S[i]转换为整数
hashTable[id]++; // 该字符串的出现次数+1
}
for (int i = 0; i < m; i++) { // m个待数数的字符串
scanf_s("%s", temp,5);
int id = hashFunc(temp, 3);//将字符串temp转换为整数
printf("%d\n", hashTable[id]); //输出该字符串的出现次数
}
return 0;
}
输入:
4 2
ABC ABC BCD BFG
ABC BFG
输出:
2
1