在一个字符串(1<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符的位置。若为空串,返回-1

char大小为8bit,最多256。创建hash[256]计算每个字符出现的次数。



1 class Solution {
2 public:
3 int FirstNotRepeatingChar(string str) {
4 if(str.size()<1) return -1;
5 int hash[256]={0};
6 for(int i=0;i<str.size();i++){
7 hash[str[i]]++;
8 }
9 for(int i=0;i<str.size();i++){
10 if(hash[str[i]]==1)
11 return i;
12 }
13 return -1;
14 }
15 };