第一题:查找字符串中第一个只出现一次的字符并输出

查找字符串中第一个只出现一次的字符并输出。

如:aabbcddefg 则程序输出 c


这个问题其实主要考察大家是否有 空间换时间 的思想

好在这个问题里出现的字符 都是ascii码

所以我们可以建立一个数组大小为 256

之后遍历字符串 以字符串中的字符为下标累加数组元素

这样 我们最后将得到一个直方图

void find(const char* s)
{
int array[256] = {0};
char* p = s;

while( *p )
{
array[*p++]++;
}

while( *s && (array[*s] != 1) )
{
s++;
}

printf("%c\n", *s);
}

 

 

 

 

posted @ 2013-01-31 10:46  海 哥  阅读(339)  评论(0编辑  收藏  举报