快速查找字符串中出现的第一个不重复的字母
char FindFirstOnlyChar(const char* s)
{
int num[26]={0};
int index[26]={0};
int i,len;
len = strlen(s);
for(i=0;i<len;i++)
{
num[s[i]-'a']++;
//记住这个字符第一次出现的位置
if(0==index[s[i]-'a'])
index[s[i]-'a']=i;
}
int pos=len;//用pos记住最早出现一个字符出现的位置
for(i=0;i<26;i++)
{
if(num[i]==1)
{
if(pos>index[i])
{
pos = index[i];
}
}
}
if(len == pos)
{
return -1;
}
else
{
return s[pos];
}
}
{
int num[26]={0};
int index[26]={0};
int i,len;
len = strlen(s);
for(i=0;i<len;i++)
{
num[s[i]-'a']++;
//记住这个字符第一次出现的位置
if(0==index[s[i]-'a'])
index[s[i]-'a']=i;
}
int pos=len;//用pos记住最早出现一个字符出现的位置
for(i=0;i<26;i++)
{
if(num[i]==1)
{
if(pos>index[i])
{
pos = index[i];
}
}
}
if(len == pos)
{
return -1;
}
else
{
return s[pos];
}
}