题目描述:
在一个字符串(1<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置。
分析:
用一个数组统计每个字符出现的次数。
再次扫描数组,如果找到第一个字符次数为1的,那么返回它的位置。
代码:
1 class Solution { 2 public: 3 int FirstNotRepeatingChar(string str) { 4 int strLen = str.length(); 5 int times['z' + 1]; 6 memset(times, 0, sizeof(int) * ('z' + 1)); 7 for(int i = 0; i < strLen; i++) { 8 times[str[i]]++; 9 } 10 for(int i = 0; i < strLen; i++) { 11 if(times[str[i]] == 1) { 12 return i; 13 } 14 } 15 return -1; 16 } 17 };