【 声明:版权所有,转载请标明出处,请勿用于商业用途。 联系信箱:libin493073668@sina.com】
题目描述
在一个字符串(1<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符的位置。若为空串,返回-1。位置索引从0开始
思路
使用哈希表存储每个字母出现的次数,然后再来一次循环判断
class Solution
{
public:
int FirstNotRepeatingChar(string str)
{
if(str=="")
return -1;
int len = str.length();
int hsh[300]{0};
for(int i = 0; i<len; ++i)
hsh[str[i]]++;
for(int i = 0; i<len; ++i)
if(hsh[str[i]]==1)
return i;
return -1;
}
};