第一个只出现一次的字符
描述:
给出一个字符串,找出第一个只出现一次的字符。
分析
- 1、可以用对象保存字符出现的次数
- 2、判断第一次出现的位置和最后的位置是否相等
实现
方式一:【推荐】
- 只需要判断第一次出现的位置和最后的位置是否相等
var firstUniqChar = function (s) {
for (let x of s) {
if (s.indexOf(x) === s.lastIndexOf(x)) return x
}
return ' '
}
方式二:
var firstUniqChar = function (str) {
// 使用 map 缓存值
const map = new Map()
// 临时字符
let tempChar
// 临时 map 中的值
let tempMapItem
for (let i = 0; i < str.length; i++) {
tempChar = str[i]
tempMapItem = map.get(tempChar)
if (tempMapItem) {
// 如果 map 中有值值 +1
map.set(tempChar, tempMapItem + 1)
} else {
// 如果 map 中没值,加入
map.set(tempChar, 1)
}
}
// 遍历 map 找出第一个值为 1 的 key,即是想要找的字符
for (let [k, v] of map) {
if (v === 1) {
return k
}
}
return ' '
}