题目描述
在一个字符串(0<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置, 如果没有则返回 -1(需要区分大小写).
class Solution
{
public:
int FirstNotRepeatingChar(string str)
{
if(str.size()==0)
return -1;
//建立哈希表,字符是长度为8的数据类型,共有256种可能,于是创建一个长度为256的列表
char ch[256]={0};
for(int i=0;i<str.size();i++) //遍历字符串,下标为ASCII值,值为次数
ch[str[i]]++;
for(int i=0;i<str.size();i++) //遍历列表,找到出现次数为1的字符并输出位置
if(ch[str[i]]==1)
return i;
return 0;
}
};