题解 | #第一个只出现一次的字符#
第一个只出现一次的字符
https://www.nowcoder.com/practice/1c82e8cf713b4bbeb2a5b31cf5b0417c
class Solution {
public:
int FirstNotRepeatingChar(string str) {
// write code here
unordered_map<char,int> m;
for(int i = 0; i < str.size(); ++i)
{
m[str[i]]++;
}
// for(auto i : m)
// {
// std::cout << i.first << " " << i.second << std::endl;
// } // 这个打印有点怀疑自己对unordered_map认知~
// 跟同事讨论讨论,发现一个情况,该容器底层是hash,迭代器内部会重构序列,并不是
// 根据存入顺序;访问map时,记得使用key访问即可~
for(int i = 0; i < str.size(); ++i) // 这个比较微妙,很好保留原有的序列号,但又不影响新容器的遍历情况
{
if(m[str[i]] == 1)
{
return i;
}
}
return -1;
}
};
挤挤刷刷! 文章被收录于专栏
记录coding过程