天天看点

【剑指offer:第一个只出现一次的字符】简单易懂哈希表实现(JavaScript)

题目描述:在字符串 s 中找出第一个只出现一次的字符。如果没有,返回一个单空格。

解法:哈希表

思路很简单。遍历两次字符串 s:

  • 第一次使用哈希表统计字符出现次数
  • 第二次检查字符出现次数是否为 1,若为 1,直接返回字符。
// ac地址:https://leetcode-cn.com/problems/di-yi-ge-zhi-chu-xian-yi-ci-de-zi-fu-lcof/
// 原文地址:https://xxoo521.com/2020-03-11-first-uniq-char/
/**
 * @param {string} s
 * @return {character}
 */
var firstUniqChar = function(s) {
    const map = new Map();
    for (let i = 0; i < s.length; ++i) {
        if (map.has(s[i])) {
            map.set(s[i], map.get(s[i]) + 1);
        } else {
            map.set(s[i], 1);
        }
    }

    for (const [ch, times] of map.entries()) {
        if (times === 1) return ch;
    }
    return " ";
};           

复制