利用哈希表:
int FirstNotRepeatingChar(string str)
{
if(str.length()<=0) return -1;
int hashtable[256] = { 0 };
int sub = 0;
char res;
for (int i = 0; i < str.length();i++)
{
hashtable[str[i]]++;
}
for (int i = 0; i < str.length(); i++)
{
if (hashtable[str[i]] == 1)
{
return i;
}
}
return -1;
}
用map
int FirstNotRepeatingChar(string str)
{
if(str.length()<=0) return -1;
map<char, int> m;
for (int i = 0; i < str.length(); i++)
{
if (m.count(str[i])>=1)
{
int times = m.count(str[i]);
m[str[i]] = times + 1;
}
else
{
m.insert(make_pair(str[i], 1));
}
}
for (int i = 0; i < str.length(); i++)
{
if (m[str[i]] == 1)
{
return i;
}
}
return -1;
}