【剑指offer】第一个只出现一次的字符
原创博文,转载请注明出处!
本题牛客网地址
1.题目
2.思路
空间换时间。建立一个哈希表,第一次扫描字符串时,统计每个字符的出现次数。第二次扫描字符串时,返回第一个只出现一次字符的位置。
3.代码
1 class Solution { 2 public: 3 int FirstNotRepeatingChar(string str) { 4 5 // 特殊输入 6 if(str.size() == 0) return -1; 7 8 // 辅助容器 9 map<char, int> item; 10 11 // 第一次遍历字符串 12 for(int i = 0; i < length; i++) 13 item[str[i]]++; 14 15 // 第二次遍历字符串 16 for(int i = 0; i < length; i++) 17 if(item[str[i]] == 1) 18 return i; 19 20 // 不存在只出现一次的字符 21 return -1; 22 } 23 };