[100分]寻找哈希值一样的字符串

CsToD CsToD 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
string类型的实例是无限的,而哈希值是一个32位整数,所以肯定存在哈希值相同的字符串。

string类型的哈希算法如下:

public override unsafe int GetHashCode()
{
fixed (char* str = ((char*) this))
{
char* chPtr = str;
int num = 0x15051505;
int num2 = num;
int* numPtr = (int*) chPtr;
for (int i = this.Length; i > 0; i -= 4)
{
num = (((num << 5) + num) + (num >> 0x1b)) ^ numPtr[0];
if (i <= 2)
{
break;
}
num2 = (((num2 << 5) + num2) + (num2 >> 0x1b)) ^ numPtr[1];
numPtr += 2;
}
return (num + (num2 * 0x5d588b65));
}
}


谁能找出几个哈希值相同的字符串?
...全文

相关推荐

华为OD算法题解-100分和200分题.rar

本项目包含多道华为OD算法考试的100分与200分题目解答,涵盖AI处理器组合、任务调度、员工考勤统计、光伏发电规划及字符匹配等典型算法问题。代码使用Python实现,涉及贪心算法、排列组合、字符串处

27-1994

HashTester全面型哈希值测试软件

这是一个不到100KB的绿色小软件,能测试单个文件或字符串的哈希值。它支持包括MD2、MD4、MD5、SHA1、CRC32、SHA512、HAVAL系列、TIGER系列等哈希值的生成,可以应付大多数较

DelisPhi

php像数组一样存取和修改字符串字符

- 如果指定的索引超出了字符串的实际长度,将会在字符串末尾添加空白字符,如$str[100] = 'y';将输出 '***y',在字符串原有长度基础上添加了100个字符的空白。

weixin_38651507

输入一个长度不超过100的字符串,求出这个字符串的长度(不能使用strlen())

输入一个长度不超过100的字符串,求出这个字符串的长度(不能使用strlen())

leboc

【C++滚动哈希 滑动窗口】2156. 查找给定哈希值的子串|1947

给定整数 p 和 m ,一个长度为 k 且下标从 0 开始的字符串 s 的哈希值按照如下函数计算: hash(s, p, m) = (val(s[0]) * p0 + val(s[1]) * p1 + ... + val(s[k-1]) * p^k-1^) mod m. 其中 val(s[i]) 表示 s[i] 在字母表中的下标,从 val('a') = 1 到 val('z') = 26 。 给你一个字符串 s 和整数 power,modulo,k 和 hashValue 。请你返回 s 中 第一个 长度

软件架构师何志丹
评论 31
收藏 已收藏
分享
返回顶部
CsToD
C# 111,129 成员 642,538 内容