题目描述:
给定一个字符串,找到它的第一个不重复的字符,并返回它的索引。如果不存在,则返回 -1。
示例:
s = "leetcode"
返回 0
s = "loveleetcode"
返回 2
思路:
先使用lodash的_countBy()方法返回每个字体出现的字数,(这是一个对象)
然后使用entries()方法返回数组的键值对,再去循环此键值对,在循环中通过值寻找上方返回哈希表中的字符,如果字符出现次数为1,直接返回此键值对的健(index)
解法:
/**
* @param {string} s
* @return {number}
*/
var firstUniqChar = function(s) {
let entriesObj = _.countBy(s)
console.log('entriesObj', entriesObj)
for (const [i, ch] of Array.from(s).entries()){
console.log('[i, ch]', [i, ch])
if (entriesObj[ch] === 1) {
return i
}
}
return -1;
};