//没有找到返回-1,找到返回找到的字符
char FindFirst(char* str)
{
#define MAX_CHAR_NUM 128
int Harsh[MAX_CHAR_NUM] = {0};
char FisrtAppearPos[MAX_CHAR_NUM];
memset(FisrtAppearPos,-1,sizeof(FisrtAppearPos));
for (char* p=str; *p!=0; p++)
{
if (++Harsh[*p] == 3)
FisrtAppearPos[*p] = p-str;
else
FisrtAppearPos[*p] = -1;
}
int nPos = MAX_CHAR_NUM;
for(int i=0; i<MAX_CHAR_NUM; i++)
{
if (FisrtAppearPos[i] != -1)
if (nPos>FisrtAppearPos[i])
nPos = FisrtAppearPos[i];
}
if (nPos == MAX_CHAR_NUM)//没有找到
return -1;
return str[nPos];
}