387.字符串中的第一个唯一字符
链接:387.字符串中的第一个唯一字符
难度:Easy
标签:队列、哈希表、字符串、计数
简介:给定一个字符串,找到它的第一个不重复的字符,并返回它的索引。如果不存在,则返回 -1。
题解 1 - typescript
- 编辑时间:2020-12-23
- 执行用时:160ms
- 内存消耗:43.4MB
- 编程语言:typescript
- 解法介绍:遍历后储存成 set。
function firstUniqChar(s: string): number {
  const dict: Record<string, number> = {};
  for (const c of s) {
    dict[c] = (dict[c] ?? 0) + 1;
  }
  const set = new Set(
    Object.entries(dict)
      .filter(([, v]) => v === 1)
      .map(([k]) => k)
  );
  for (let i = 0, l = s.length; i < l; i++) {
    if (set.has(s[i])) return i;
  }
  return -1;
}