# 387. 字符串中的第一个唯一字符
TIP
相关标签: 哈希表 | 字符串
# 题目
给定一个字符串,找到它的第一个不重复的字符,并返回它的索引。如果不存在,则返回 -1。
示例:
s = "leetcode"
// 返回 0
s = "loveleetcode"
// 返回 2
提示: 你可以假定该字符串只包含小写字母。
# 解题思路
# 解法
可使用哈希表来处理,遍历字符串,已存在则将值加一,不存在将值设为1,得到最终的哈希表。再判断哈希表第一个值为1的,获得索引
# 代码
/**
* @param {string} s
* @return {number}
*/
const firstUniqChar = (s) => {
const hash = {};
for (let i = 0; i < s.length; i++) {
if (hash[s[i]]) {
hash[s[i]]++;
} else {
hash[s[i]] = 1;
}
}
for (let j = 0; j < s.length; j++) {
if (hash[s[j]] === 1) {
return j;
}
}
return -1;
};
# 时间复杂度
O(n)
# 空间复杂度
O(1)