【剑指offer】第一个只出现一次的字符

  |   0 评论   |   0 浏览

题目

在字符串 s 中找出第一个只出现一次的字符。如果没有,返回一个单空格。 s 只包含小写字母。

我的答案

/**
 * @param {string} s
 * @return {character}
 */
var firstUniqChar = function (s) {
    const countMap = new Map();
    for (i = 0; i < s.length; i++) {
        countMap.set(s[i], countMap.get(s[i]) + 1 || 1);
    }
    for (i = 0; i < s.length; i++) {
        if (countMap.get(s[i]) === 1) {
            return s[i];
        }
    }

    return " ";
};

这方法就是利用map去存某个字母在字符串中出现的次数。然后再循环一遍,找出只出现一次的字母。这个方法两遍循环。

还有一个方法就是在第一遍循环里面找当前字母的lastIndexof。


标题:【剑指offer】第一个只出现一次的字符
作者:limanting
地址:https://blog.manxiaozhi.com/articles/2021/08/29/1630220394412.html