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];
}
}