/**
* @file 找出字符串中第一个只出现一次的字符
*/
function firstSingleChar(str: string) {
// 补全此处代码
const res = new Map<string, number>();
for (let i = 0; i < str.length; i++) {
if (res.has(str[i])) {
res.set(str[i], res.get(str[i])! + 1);
} else
res.set(str[i], 1);
}
for (const key of res.keys()) {
if (res.get(key) === 1) return key;
}
return undefined;
}
// a 和 b 都出现了两次,只有 c 出现了一次,返回 c
console.log(firstSingleChar('abcba')) // c
// b c d 都出现了一次,返回第一个
console.log(firstSingleChar('aabcdee')) // b
// a 和 b 都出现了多次,没有只出现一次的元素,返回 undefined
console.log(firstSingleChar('aaaabbbb')) // undefined