# 字符串中的第一个唯一字符
给定一个字符串,找到它的第一个不重复的字符,并返回它的索引。如果不存在,则返回 -1。
案例:
s = "leetcode"
返回 0.
s = "loveleetcode",
返回 2.
注意事项:您可以假定该字符串只包含小写字母。
# 解:
var firstUniqChar = function (s) {
// 如果出现的第一个字母和最后一个字母相同,即为唯一
for (let i = 0; i < s.length; i++) {
if (s.indexOf(s[i]) === s.lastIndexOf(s[i])) {
return i
}
}
return -1
};
# 解(2):
var firstUniqChar = function (s) {
let map = new Map()
// 将数组元素和出现次数添加至 map
for (let i = 0; i < s.length; i++) {
if (map.has(s[i])) {
map.set(s[i], map.get(s[i]) + 1)
} else {
map.set(s[i], 1)
}
}
// 次数只出现一次即为唯一
for (let i = 0; i < s.length; i++) {
if (map.get(s[i])===1) {
return i
}
}
return -1
};