给定一个字符串,找到它的第一个不重复的字符,并返回它的索引。如果不存在,则返回 -1。
- 你可以假定该字符串只包含小写字母。
思路:
- ◇ 遍历原字符串,对应字母的键值存入 map 中
- ◇ 再次遍历 map 取出第一个值为 1 的字符串返回
- ◇ !!! 不存在的情况,最后一定要返回 -1 。
function firstUniqChar(s: string): number {
let map = new Map();
// 遍历原字符串,对应出现键值存入 map 中
for(let i=0; i<s.length; i++) {
let key = s[i];
if(map.has(key)) {
map.set(key, map.get(key) + 1);
} else {
map.set(key, 1);
}
}
// 再次遍历 map 取出第一个值为 1 的字符串返回
for(let i=0; i<s.length; i++) {
let key = s[i];
if(map.get(key) == 1) {
return i;
}
}
return -1;
};