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 };