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