散列
将元素通过函数转化为一个整数,使得该整数尽量唯一的表示这个元素。
设计字符串散列函数
- 如果字符串只由大写字母或小写字母中的一种构成,则采用26进制即可,如果混合构成则采用52进制进行映射
其中 A - Z 为0-25 ,a - z 为26-51
代码如下:
int hashFunc(char s[],int len){
int id = 0;
for(int i = 0;i<len;i++){
if(s[i]>'=A'&&s[i]<='Z'){
id = id * 52 + s[i] - 'A';
}else{
id = id*52 + s[i] - 'a' + 26;
}
}
return id;
}
- 如果字符串中出现了数字,那么增加进制至62,或者如果只在末尾出现数字的话,直接拼接即可。