在一个字符串(1<=字符串长度<=10000,全部由大小写字母组成)中找到第一个只出现一次的字符,并返回它的位置。
int FirstNotRepeatingChar(string str) {
if (str.empty())
return -1;
map<char, int> mp;
for (int i = 0; i < str.length(); i++)
{
mp[str[i]]++;
}
map<char, int>::iterator it;
int min = 10000;
for (it = mp.begin(); it != mp.end(); it++)
{
if (it->second == 1)
{
for (int i = 0; i < str.length(); i++)
{
if (str[i] == it->first)
{
if (i < min)
min = i;
}
}
}
}
if (min < 10000)
return min;
else
return -1;
}