解题思路:考虑到如何寻找第一个且仅出现一次的字符,不知道记录在哪里。不过,ASCII码的总共就128个,所以用一个128的数组存放当前下标值大小的字符,这样就比较容易实现了。
#include<iostream>
#include<cstring>
using namespace std;
int a[128];
char b[100010];
int main()
{
int flag=0; //判断是否存在只出现一次的字符标志
cin.getline(b,100001);
int s=strlen(b);
for(int i=0;i<s;i++)
a[b[i]]++;
for(int i=0;i<s;i++)
{
int t=(int)b[i];
if(a[t]==1)
{
flag=1;
cout<<b[i]<<endl;
break;
}
}
if(flag==0)
cout<<"no"<<endl;
return 0;
}