Given a string, find the first non-repeating character in it and return it’s index. If it doesn’t exist, return -1.
Examples:
s = "leetcode" return 0. s = "loveleetcode", return 2.
Note: You may assume the string contain only lowercase letters.
这道题确实没有什么难度,我们只要用哈希表建立每个字符和其出现次数的映射,然后按顺序遍历字符串,找到第一个出现次数为1的字符,返回其位置即可,参见代码如下:
class Solution { public: int firstUniqChar(string s) { unordered_map<char, int> m; for (char c : s) ++m[c]; for (int i = 0; i < s.size(); ++i) { if (m[s[i]] == 1) return i; } return -1; } };
类似题目:
参考资料:
https://leetcode.com/problems/first-unique-character-in-a-string/