根据ascii码,A~Z:65~90;a~z:97~122
建立一个哈希表数组,索引为字符ascii码-65,值为出现的次数。
遍历两次字符串,第一次统计字符出现的次数,第二次找到第一个字符出现次数为1的字符。
1 class Solution { 2 public: 3 int FirstNotRepeatingChar(string str) { 4 if(str.size()==0) return -1; 5 int table[58] = {0}; 6 for(int i=0;i<str.size();i++){ 7 table[str[i]-65]++; 8 } 9 for(int j=0;j<str.size();j++){ 10 if(table[str[j]-65]==1) return j; 11 } 12 return -1; 13 } 14 };