通常哈希不会做算术,否则
stop和
pots将具有相同的哈希值。
并且你不会将其限制为前n个字符,因为否则
house和
house将具有相同的哈希值。
通常,哈希采用值并将其乘以质数(使其更有可能生成唯一的哈希),因此你可以执行以下操作:
int hash = 7;for (int i = 0; i < strlen; i++) { hash = hash*31 + charAt(i);}
通常哈希不会做算术,否则
stop和
pots将具有相同的哈希值。
并且你不会将其限制为前n个字符,因为否则
house和
house将具有相同的哈希值。
通常,哈希采用值并将其乘以质数(使其更有可能生成唯一的哈希),因此你可以执行以下操作:
int hash = 7;for (int i = 0; i < strlen; i++) { hash = hash*31 + charAt(i);}