字符串hash

it2025-01-28  19

字符串hash是指将一个字符映射成一个整数,使得该整数可以尽可能地通过H§来唯一地表示字符串S。(令hash函数为H(P)=x*Range+y) 若字符串都由大写字母构成,可将A~Z视为0到25,按照二十六进制转换成十进制,实现将字符在映射为整数的需求

int hashFunc(char S[],int len) { int id=0; for(int i=0;i<len;i++) { id=id*26+(S[i]-'A'); } return id; }

注:若字符串长度较长,那么转换成的整数也会比较大,所以需要注意使用时len不能太长,若有小写字母,可将小写字母视为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'); } } return id; }

若要保证在字符串的末尾是确定个数的数字,可以把前面英文字母的部分按上面的思路转换为整数,再把末尾的数字直接拼凑上去

int hashFunc(char S[],int len) { id=id*26+(S[i]-'A'); } id=id*10+(S[len-i]-'0'); return id; }
最新回复(0)