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/