Hash算法的思想:
样例:
输入“abaccdeff”, 输出b
算法思路:字符(char)是一个长度为8的数据类型,因此总共有256种可能。
每个字母根据ASCII码值作为数组的下标。数组中存储的是每个字符出现的次数。
bool findOnceChar(char *str, int len ,char *ret) {
if (NULL == str || 0 == len) {
return false;
}
int array[256] = {0};
int index = 0;
while (index < len) {
char c = str[index];
array[c] = array[c] + 1;
index++;
}
for (index = 0; index < len; index ++) {
char c = str[index];
if (array[c] == 1) {
*ret = c;
return true;
}
}
return false;
}
char onceChar[] = {'a','a','c','d','e','e','e','e','e'};
char onceCharRet;
findOnceChar(onceChar, 9, &onceCharRet);