举两个单词的例子,它们使用 stringHash1 散列到相同的值,但使用 stringHash2 散列到不同的值。
我的答案是 car 和 camera 因为前两个字母是相同的 ascii 值但不确定?
int stringHash1(char * str)
{
int i;
int r = 0;
for (i = 0; str[i] != '\0'; i++)
r += str[i];
return r;
}
/*the second hashing function you can use*/
int stringHash2(char * str)
{
int i;
int r = 0;
for (i = 0; str[i] != '\0'; i++)
r += (i+1) * str[i];
return r;
}