Leetcode题解之 —— 字符串中的第一个唯一字符

思路


思路一(150ms)

哈希计数法

  • 遍历字符串
  • 更新哈希计数
  • 遍历哈希map, 找到第一个为0的项

题解


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
/**
* @param {string} s
* @return {number}
*/
var firstUniqChar = function(s) {
// TODO solution 1
const cache = new Map();

for (const ch of s) {
cache.set(ch, cache.has(ch) ? cache.get(ch) + 1 : 0);
}
for (const [i, v] of cache.entries()) {
if (!v) {
return s.indexOf(i);
}
}

return -1;
};