1.当字符串由大写字母组成,则改写成26进制。
2.当字符串由字母组成,则改写成52进制。
3.当字符串由字母数字组成,则改写成62进制。
例子:
当给出N个字符串(恰好三个大写字母组成),再给出M个查询字符串,问每个查询字符串在N个字符串中出现的个数。
#include<stdio.h>
const int maxn=100;
char S[maxn][5],temp[5];
int hashTable[26*26*26+10];
int hashFunce(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("%d%d",&n,&m);
for(int i=0;i<n;i++)
{
scanf("%s",S[i]);
int id=hashFunce(S[i],3);
hashTable[id]++;
}
for(int i=0;i<m;i++)
{
scanf("%s",temp);
int id=hashFunce(temp,3);
printf("%d\n",hashTable[id]);
}
return 0;
}