您的位置:首页 > 其它

第5题 在一个字符串中找到第一个只出现一次的字符

2012-02-23 18:05 471 查看
题目:在一个字符串中找到第一个只出现一次的字符。

例如输入 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);
}


此题的解法我认为非常巧妙,我也没想到此题还有如此简单的解法,这个解题思路一定要理解
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐