2006年google的一道笔试题

来源:互联网 发布:2015 网络推广方案ppt 编辑:程序博客网 时间:2024/05/17 15:19

题目:在一个字符串中找到第一个只出现一次的字符。如输入abaccdeff,则输出b。


分析:这题的思路是将字符分别对应到数组中去,第一遍遍历字符串将字母出现的次数记录下来,第二遍同样是从头到尾遍历字符串,找到只出现一次的字母并输出。

#include <iostream>#include <stdio.h>#include <algorithm>#include <string>#include <cstring>#include <string.h>using namespace std;int main(){    int a[255];    memset(a,0,sizeof(a));    char s[200];    scanf("%s",s);    char *p = s;    while(*p != '\0')       //把字母对应到数组中去    {        a[*p++]++;    }    p = s;    while(*p != '\0')       //重新搜一遍字符串    {        p++;        if(a[*p] == 1)      //遇到第一个出现次数为1的字母就输出        {            printf("%c\n",*p);            break;        }    }    return 0;}



0 0
原创粉丝点击