第一题:查找字符串中第一个只出现一次的字符并输出
查找字符串中第一个只出现一次的字符并输出。
如: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); }