题目描述:在字符串 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 " ";
};
复制