方法一
{
// write code here
if(!str) return -1;
let map = new Map();
for(let i = 0;i < str.length;i++){
let tmp = str[i];
if(map.has(tmp)){
map.set(tmp,map.get(tmp) + 1);
}else{
map.set(tmp,1);
}
}
for(let i = 0;i < str.length;i++){
let tmp = str[i];
if(map.has(tmp)){
if(map.get(tmp) === 1)
return i;
}
}
return -1;
}
module.exports = {
FirstNotRepeatingChar : FirstNotRepeatingChar
};
方法二
{
// write code here
let res = [] // 存储字母出现的次数
//统计出现的次数
for(let i = 0;i < str.length;i++){
let key = str[i];
if(!res[key]){
res[key] = 0;
}
res[key]++;
}
//遍历字符串,若只出现一次则返回下标
for(let i = 0;i < str.length;i ++){
let key = str[i];
if(res[key] == 1){
return i;
}
}
return -1;
}
module.exports = {
FirstNotRepeatingChar : FirstNotRepeatingChar
};