给定一个字符串,找到它的第一个不重复的字符,并返回它的索引。如果不存在,则返回 -1。
示例
s = “leetcode” 返回 0
s = “loveleetcode” 返回 2
题解
创建一个map
遍历一次字符串,在map中记录每个字符索引,如果已经记录(表示有多个重复的字符)则设置成 -1
再次遍历字符串,如果当前字符的索引依然等于map的值,则就表示该字符只出现过一次
最后都不成立则返回 -1
/**
* @param {string} s
* @return {number}
*/
var firstUniqChar = function(s) {
const map = {}
for (let i = 0; i < s.length; i++) {
if (map[s[i]] === undefined) {
map[s[i]] = i
} else {
map[s[i]] = -1
}
}
for (let i = 0; i < s.length; i++) {
if (map[s[i]] === i) {
return i
}
}
return -1
};