OC算法练习-Hash算法
//查找第一个只出现一次的字符
char findfirstSingleChar(char* cha){
//定义结果值,初始化为空字符
char result = '\0';
//定义一个数组 来储存每个字母出现的次数
int array[256];
//对数组进行初始化
for (int i = 0; i< 256; i++) {
array[i] = 0;
}
//定义一个指针,指向当前字符串头部
char* p = cha;
//遍历每个字符
while (*p != '\0') {
// 在字母对应存储位置 进行出现次数 +1 操作
array[*(p++)]++;
}
//将p指针重新指向字符串的头部
p = cha;
//遍历每个字符的出现次数
while (*p != '\0') {
//遇到第一个出现次数为1的字符,打印结果
if (array[*p] == 1) {
result = *p;
break;
}
//反之继续反向遍历
p++;
}
return result;
}
调用方法:
char charArray[] = "abcdefaacdef";
char result = findfirstSingleChar(charArray);
printf("this char is %c \n",result); //b