如何找出字符串中第一个只出现一次的字符
两个思路:1,hash,�不同编译器对字符数据的处理不一样,所以hash之前先把字符类型转成无符号类型;2,空间换时间,用buffer数组记录当前只找到一次的字符,避免二次遍历。
# define SIZE 256
char GetChar(char str[])
{
if(!str)
return 0;
char* p = NULL;
unsigned count[SIZE] = {0};
char buffer[SIZE];
char* q = buffer;
for(p=str; *p!=0; p++)
{
if(++count[(unsigned char)*p] == 1)
*q++ = *p;
}
for (p=buffer; p<q; p++)
{
if(count[(unsigned char)*p] == 1)
return *p;
}
return 0;
}