# 387. 字符串中的第一个唯一字符

# 题目

给定一个字符串,找到它的第一个不重复的字符,并返回它的索引。如果不存在,则返回 -1。

s = "leetcode" 返回 0

s = "loveleetcode" 返回 2

# 题解

# 哈希表

/**
 * @param {string} s
 * @return {number}
 */
var firstUniqChar = function(s) {
  let m = new Map();
  for (let i = 0; i < s.length; ++i) {
    let x = s[i];
    if (m.has(x)) m.set(x, -1);
    else m.set(x, i);
  }
  for (let v of m.values()) {
    if (v >= 0) return v;
  }
  return -1;
};
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16