Сначала подсчитайте частоты символов, затем вторым проходом верните первый с частотой один.
Напишите функцию, которая находит первый уникальный символ в строке.
Сначала подсчитайте частоты символов, затем вторым проходом верните первый с частотой один.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Сначала подсчитайте частоты символов, затем вторым проходом верните первый с частотой один.
Вариант считает Unicode code points, а не составные графемы:
function firstUnique(text) {
const counts = new Map();
for (const char of text) counts.set(char, (counts.get(char) ?? 0) + 1);
for (const char of text) if (counts.get(char) === 1) return char;
return null;
}
Время O(n), память O(k) для разных символов. Для воспринимаемых пользователем символов вроде составных emoji нужна сегментация графем.