题目:在一个字符串中找到第一个只出现一次的字符。
例如输入 abaccdeff ,则输出b
此题据说是2006年google的一道笔试题
假设全都是ASCII码,也就是说一个字符对应一个相应的整数
#include<stdio.h>
#include<string.h>
char first_single_char(char* str) {
int ascii[255];
memset(ascii, 0, sizeof(ascii));
char* p = str;
while(*p != '\0') {
ascii[*p]++;
p++;
}
p = str;
while(*p++ != '\0') {
if(ascii[*p] == 1) {
return *p;
}
}
return '\0';
}
int main() {
char str[] = "abaccdeff";
char result = first_single_char(str);
printf("%c\n",result);
}
此题的解法我认为非常巧妙,我也没想到此题还有如此简单的解法,这个解题思路一定要理解