题解 | #第一个只出现一次的字符#
第一个只出现一次的字符
https://www.nowcoder.com/practice/1c82e8cf713b4bbeb2a5b31cf5b0417c
class Solution { public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param str string字符串 * @return int整型 */ int FirstNotRepeatingChar(string str) { // write code here // vector<int> count(26,0); // vector<char> c; // for(int i=0;i<str.size();++i){ // int index = str[i]-'a'; // count[index]++; // if(count[index] == 0){ // c.push_back(str[i]); // } // } // for (int j = 0; j<c.size(); ++j) { // if(count[c[j]-'a']==1){ // } // } map<char, int> count; vector<char> first; for (int i = 0; i < str.size(); ++i) { if (count.find(str[i]) == count.end()) { count.insert(make_pair(str[i], 1)); first.push_back(str[i]); } else { count[str[i]]++; } } for (int j = 0; j < first.size(); ++j) { if (count[first[j]] == 1) { char res = first[j]; for (int k = 0; k < str.size(); ++k) { if (str[k] == res) { return k; } } } } return -1; } };