Напишите функцию, которая находит первый уникальный символ в строке.

Сначала подсчитайте частоты символов, затем вторым проходом верните первый с частотой один.

Короткий ответ

Что ответить на собеседовании

Сначала подсчитайте частоты символов, затем вторым проходом верните первый с частотой один.

Подробный разбор

Ответ с пояснениями

Сначала подсчитайте частоты символов, затем вторым проходом верните первый с частотой один.

Вариант считает 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 нужна сегментация графем.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее