题目描述:
在一个字符串(0<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置, 如果没有则返回 -1(需要区分大小写).(从0开始计数)
解题思路:
- 对字符串进行遍历,以key:value的形式存入对象中,当然字典也是可以的
- 遍历对象找到value为1的元素,使用indexOf查找返回索引
解题代码:
function FirstNotRepeatingChar(str)
{
// write code here
if(str === '') return -1;
let obj = {};
for(let i = 0;i<str.length;i++) {
if(!obj[str[i]]) {
obj[str[i]] = 1;
}else {
obj[str[i]] = obj[str[i]] + 1;
}
}
for(let k in obj) {
if(obj[k] === 1) {
return str.indexOf(k);
}
}
return -1;
}