# 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)

Last Updated: 10/15/2020, 4:31:59 PM