本题有多种解法,我使用的是哈希表结构,一开始将字符串遍历一遍,将所有字符的次数记录一次,第二次遍历从前往后找次数为1的下标,找到就返回。
class Solution {
public:
int FirstNotRepeatingChar(string str)
{
if(str.empty())
{
return -1;
}
int hastTable[256] = {0};
int i = 0;
for(i = 0;i<str.size();i++)
{
hastTable[str[i]]++;
}
for(i = 0;i<str.size();i++)
{
if(hastTable[str[i]] == 1)
{
return i;
}
}
return -1;
}
};