387. 字符串中的第一个唯一字符 javascript
题目:
给定一个字符串,找到它的第一个不重复的字符,并返回它的索引。如果不存在,则返回 -1。
示例
s = "leetcode"
返回 0
s = "loveleetcode"
返回 2
代码1
- 将字符串都遍历一遍,统计次数并放入对象中,最后返回次数为1的index
var firstUniqChar = function(s) {
// 将字符串都遍历一遍,统计次数并放入对象中,最后返回次数为1的index
var obj = {}
var arr = s.split('')
for(var word of arr){
obj[word] = 0
}
for(var word of arr){
obj[word] +=1
}
for(var j in obj){
if(obj[j] == 1){
return arr.indexOf(j)
}
}
return -1
};
后来想了想,可以不用减去一次循环,于是就有了代码2
代码2
var firstUniqChar = function(s) {
// 将字符串都遍历一遍,统计次数并放入对象中,最后返回次数为1的index
var obj = {}
var arr = s.split('')
for(var word of arr){
if(word in obj)obj[word] +=1
else obj[word] = 1
}
for(var j in obj){
if(obj[j] == 1){
return arr.indexOf(j)
}
}
return -1
};
时间有所提高
学艺不精,还需努力💪
高考加油