Первая повторяющаяся буква

Если «первая» означает первую по позиции букву, встречающуюся более одного раза, сначала посчитайте частоты, затем найдите первый символ с частотой больше единицы.

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

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

Если «первая» означает первую по позиции букву, встречающуюся более одного раза, сначала посчитайте частоты, затем найдите первый символ с частотой больше единицы.

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

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

Условие

Вход — строка, состоящая только из букв. Требуется найти первую букву, которая появляется в строке более одного раза, и вернуть её. Если таких букв нет, вернуть null.

Ответ

Если «первая» означает первую по позиции букву, встречающуюся более одного раза, сначала посчитайте частоты, затем найдите первый символ с частотой больше единицы.

function firstRepeated(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;
}

Для abccba ответ a. Другая возможная трактовка — символ, чей повтор встретился раньше всего; тогда ответ c и достаточно Set за один проход. Без примеров важно оговорить этот выбор. Реализация выше сохраняет регистр и работает за O(n) времени.

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

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

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

Подробнее