題目:
給定一個字符串瞧哟,找到它的第一個不重復(fù)的字符混巧,并返回它的索引。如果不存在勤揩,則返回 -1咧党。
案例:
s = "leetcode"
返回 0.
s = "loveleetcode",
返回 2.
注意事項:
您可以假定該字符串只包含小寫字母。
分析:
- 1陨亡,常見第一想法是傍衡,雙重遍歷,就可以得到答案了负蠕。時間復(fù)雜度為O(n^2)蛙埂。
- 2,另外遮糖,題設(shè)限定死了包含的字母類型绣的,所以使用int [26]數(shù)組,就可以包含所有字母,也就可以用這個數(shù)組來統(tǒng)計出現(xiàn)的個數(shù)屡江。時間復(fù)雜度也是O(n^2)芭概。
- 3,這類題目有個常用的解法就是使用HashMap來解決惩嘉。
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;
}
};
上面代碼在LeetCode上的運行時間為80 ms谈山。