字符串hash是指讲一个字符串s映射为一个整数,使得该整数可以尽可能唯一的代表字符串s。可以进行字符串的判断。
代码如下:
- #include<iostream>
- #include<cstring>
- int hashtable[26*26*26+10];
- using namespace std;
- int translate(string s){
- int sum=0;
- int len=s.length();
- for(int i=0;i<len;i++){
- if(s[i]>='A'&&s[i]<='Z')
- sum=sum*26+(s[i]-'A');
- if(s[i]>='a'&&s[i]<='z')
- sum=sum*26+(s[i]-'a');
- }
- return sum;
- }
- int main(){
- int n,m;
- cin>>n>>m;
- for(int i=0;i<n;i++){
- string s;
- cin>>s;
- int temp=translate(s);
- hashtable[temp]++;
- }
- for(int i=0;i<m;i++){
- string s;
- cin>>s;
- int temp=translate(s);
- cout<<hashtable[temp]<<endl;
- }
- return 0;
- }