Проверяет умение работать со строками и хеш-таблицами для поиска первого уникального символа за линейное время.
Задача о первом неповторяющемся символе — классический пример, где наивное решение с двумя вложенными циклами даёт O(n²), а использование хеш-таблицы снижает сложность до O(n). Идея проста: сначала мы собираем статистику по символам, а затем используем её для поиска.
function firstUniqueChar(str) {
const counts = new Map();
for (const ch of str) {
counts.set(ch, (counts.get(ch) || 0) + 1);
}
for (const ch of str) {
if (counts.get(ch) === 1) return ch;
}
return null;
}
console.log(firstUniqueChar("leetcode")); // "l"
console.log(firstUniqueChar("aabb")); // null
Подобный приём с частотным словарём используется в парсинге текста, анализе логов, проверке анаграмм, поиске дубликатов и в задачах на sliding window. Понимание этого шаблона помогает решать более сложные задачи, например, поиск первого уникального символа в потоке данных.
Итог: применяйте этот подход, когда нужно быстро найти уникальный элемент в последовательности — он даёт линейную сложность и легко читается.
Frontend developer
Ментор по Frontend
Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства
Записаться на консультацию