给定一个字符串,找到它的第一个不重复的字符,并返回它的索引。如果不存在,则返回 -1。
示例:
s = "leetcode"
返回 0
s = "loveleetcode"
返回 2
**提示:**你可以假定该字符串只包含小写字母。
用map存储第一次出现时候的index,然后遍历map找到第一个只出现1次的字符
/**
* @param {string} s
* @return {number}
*/
var firstUniqChar = function(s) {
let obj = {};
for(let i = 0; i < s.length; i ++) {
let cur = s[i];
if (!obj[cur]) {
obj[cur] = {
index: i,
count: 1
}
} else {
obj[cur].count += 1;
}
}
for(let [key, {index, count}] of Object.entries(obj)) {
if (count === 1) {
return index
}
}
return -1;
};
时间复杂度
空间复杂度