首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

有一组随机的字符串,想用一个算法把它们放到四个组中, 取出时用同一方法计算所在位置,哪位有好办法

2012-03-28 
有一组随机的字符串,想用一个算法把它们放到四个组中, 取出时用同一方法计算所在位置,哪位大虾有好办法?如

有一组随机的字符串,想用一个算法把它们放到四个组中, 取出时用同一方法计算所在位置,哪位大虾有好办法?
如题

[解决办法]
这就是典型的hash算法要求么:)

简单的方法是把字符串所有的字符都异或后得到一个值,用他分类

unsigned char GetHash(const unsigned char * str)
{
int iLength = strlen(str);
int iPos;
unsigned char hash = str[0];
for(iPos=1; iPos < iLength; iPos++)hash ^= str[iPos];

return (hash & 0x3) ^ ((hash >> 2) & 0x3)^ ((hash >> 4) & 0x3)^ ((hash >> 6) & 0x3);
}

热点排行