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

2020-04-14
字符串中的第一个唯一字符

给定一个字符串,找到它的第一个不重复的字符,并返回它的索引。

如果不存在,则返回 -1。

题解:
哈希表
/**
 * @param {string} s
 * @return {number}
 */
var firstUniqChar = function (s) {
  let hash = {}; // 哈希表
  s = s.split('');
  s.forEach((v, i) => { // 遍历s
    if (!hash[v]) { // 如果当前字符没出现过
      hash[v] = {}
      hash[v].num = 1; // 初始化出现次数为1
      hash[v].i = i; // 第一次出现的下标为i
    } else {
      hash[v].num++; // 如果已经出现过 自加1
    }
  })
  for (let key in hash) { // 遍历hash表 
    if (hash[key].num === 1) { // 找到第一个num为1的,返回存入的i
      return hash[key].i;
    }
  }
  return -1; // 如果哈希表里没有num为1的项 说明没有单独的字符出现 返回-1
};
原文地址:https://www.cnblogs.com/lanpang9661/p/12695712.html