编辑代码

/**
 * @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