给定一个字符串,找到它的第一个不重复的字符,并返回它的索引。如果不存在,则返回 -1。
案例:
s = "leetcode"
返回 0.
s = "loveleetcode",
返回 2.
解法:
// 解法1:
// 用indexOf 和 lastIndexof来判断
/**
* @param {string} s
* @return {number}
*/
var firstUniqChar = function(s) {
for(let i = 0; i< s.length; i++){
if(s.indexOf(s[i]) === s.lastIndexOf(s[i])){
return i;
}
}
return -1;
};
// 解法2:
// 将每个字母有多少个存储在hash对象中
/**
* @param {string} s
* @return {number}
*/
var firstUniqChar = function(s) {
let hash = {};
for(let i = 0; i< s.length; i++){
if(!hash[s[i]]) hash[s[i]] = 1;
else{
hash[s[i]]++;
}
}
for(let i = 0; i< s.length; i++ ){
if(hash[s[i]] === 1 ) return i;
}
return -1;
};