我们可以建立一个哈希表,通过检索值为1的主键来确定第一个只出现一次的字符是哪个,然后在哈希表里找到它就好了,时间复杂度为O(n)。
int FirstNotRepeatingChar(string str)
{
unordered_map<char,int> st;
int l=str.length ();
for(int i=0;i<l;++i)
st[str[i]]++;
for(int i=0;i<l;++i)
if(st[str[i]]==1)
return i;
return -1;
}