题目:在字符串中中找到第一个只出现一次的字符。如输入“abaccdeff”,则输出'b'。
思路:利用hash表,遍历一遍,并记录次数,hash表自己构建,一个字符8bit,最大为256,所以可设hashTable[256];
源代码:
#include "stdio.h"
char FirstNotRepeat(char *ch)
{
if(ch == NULL)
return '\0';
int hashTable[256];
for(int i=0;i<256;i++)
hashTable[i]=0;
char *p=ch;
while(*p != '\0')
{
hashTable[*(p++)]++;
}
p=ch;
while(*p != '\0')
{
if(hashTable[*p]==1)
return *p;
p++;
}
return '\0';
}
void main()
{
char c[50];
gets(c);
char result =FirstNotRepeat(c);
printf("result:%c",result);
}
结果:
abaccdeff
result:bPress any key to continue