📅  最后修改于: 2023-12-03 14:57:48.027000             🧑  作者: Mango
编写一个函数,接收一个字符串作为参数,返回该字符串中第一个出现超过一次的字符。
findFirstDuplicate('hello') // 'l'
findFirstDuplicate('abbccd') // 'b'
findFirstDuplicate('abcdefg') // undefined
该问题可以使用哈希表来解决,定义一个空的哈希表对象,遍历字符串中的每个字符,如果该字符在哈希表中已经存在,则返回该字符并结束循环,否则将该字符添加到哈希表中。
function findFirstDuplicate(str) {
const map = {};
for (let i = 0; i < str.length; i++) {
if (map[str[i]]) {
return str[i];
} else {
map[str[i]] = true;
}
}
return undefined;
}
该问题可以使用哈希表来解决,在遍历字符串中的每个字符时,使用哈希表记录字符是否已经出现过,如果已经出现过,则返回该字符。该问题的时间复杂度为 $O(n)$,空间复杂度为 $O(n)$。