第一个只出现一次的字符

题目

在一个字符串(1<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置

思路

使用map来记录字符出现的次数即可

代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
function  FirstNotRepeatingChar(str) {
if (str.length < 1 || str.length > 10000) return -1;
const map = {};
for (let i = 0; i < str.length; i++) {
if (!map[str[i]]) {
map[str[i]] = 1;//未出现过则map次数为1
} else {
map[str[i]]++;//出现过则次数在加一
}
}
for (let i = 0; i < str.length; i++) {
if (map[str[i]] === 1) {
return i;//找到出现次数第一个为一的字符
}
}
return -1;
}