利用哈希表:
int FirstNotRepeatingChar(string str) { if(str.length()<=0) return -1; int hashtable[256] = { 0 }; int sub = 0; char res; for (int i = 0; i < str.length();i++) { hashtable[str[i]]++; } for (int i = 0; i < str.length(); i++) { if (hashtable[str[i]] == 1) { return i; } } return -1; } 用map int FirstNotRepeatingChar(string str) { if(str.length()<=0) return -1; map<char, int> m; for (int i = 0; i < str.length(); i++) { if (m.count(str[i])>=1) { int times = m.count(str[i]); m[str[i]] = times + 1; } else { m.insert(make_pair(str[i], 1)); } } for (int i = 0; i < str.length(); i++) { if (m[str[i]] == 1) { return i; } } return -1; }