問題描述:給出N個字符串(由恰好三位大寫字母組成),再給出M個查詢字符串,問每個查詢字符串在N個字符串中出現的次數
#include<iostream>
using namespace std;
const int maxn = 100;
char S[maxn][5],temp[5];
int hashTable[maxn];
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;
cin>>n>>m;
for(int i=0;i<n;i++){
cin>>S[i];
int id = hashFunc(S[i],3);
hashTable[id]++;
}
for(int i=0;i<m;i++){
cin>>temp;
int id = hashFunc(temp,3);
cout<<hashTable[id]<<endl;
}
return 0;
}
也可使用map
#include<bits/stdc++.h>
using namespace std;
int main()
{
map<string,int> mp;
int n;
cin>>n;
string s1;
for(int i=0;i<n;i++){
cin>>s1;
mp[s1]++;
}
int m;
cin>>m;
for(int i=0;i<m;i++){
cin>>s1;
cout<<mp[s1]<<endl;
}
return 0;
}