C/C++面试题,使用256大小的表,扫描两遍,第一遍统计每个字符的个数,第二遍找到第1个只出现一次的字符。
注意:
1.str为NULL时,返回\0;
2.找不到第1个只出现1次的字符时,返回\0;
3.table不要忘记初始化为全0。
char find_first_not_repeat_char(char *str)
{
if (str == NULL)
return '\0';
int table[256] = {0};
for(char *p = str; *p != '\0'; p++){
table[*p]++;
}
for(char *p = str; *p != '\0'; p++){
if (table[*p] == 1)
return *p;
}
return '\0';
}