hash记录字符出现次数,最后遍历string寻找第一个hash表中值为1的字符即为第一个只出现一次的字符
int FirstNotRepeatingChar(string str) {
vector<char> order;
int hash[256];
for(int i=0;i<256;i++) hash[i]=0;
for(int i=0;i<str.size();i++)
{
hash[str[i]]++;
}
for(int i=0;i<str.size();i++)
{
if(hash[str[i]]==1)
{
return i;
}
}
return -1;
}