0Pricing
Coding Interview Prep · Урок

Подсчёт букв с таблицей частот

Подсчитывайте символы с помощью dict или массива

«Подсчёт букв с таблицей частот» — бесплатный урок Coding Interview Prep на CoddyKit. Это урок 2 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Coding Interview Prep, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Coding Interview Prep содержит 4 уроков всего.

Зачем подсчитывать символы

Множество задач о строках сводится к одному вопросу: как часто встречается каждый символ? Таблица частот отвечает на него за один проход. 📊

Способ со словарём

Обычный словарь сопоставляет каждому символу его количество. Он работает с любым алфавитом, включая юникод и специальные символы.

freq = {}
for ch in 'apple':
    freq[ch] = freq.get(ch, 0) + 1
print(freq)

get() избегает KeyError

Вызов get(ch, 0) возвращает 0, если ключ отсутствует, поэтому при первой встрече буквы её счётчик корректно начинается с единицы.

Counter делает всё за Вас

Класс Counter из collections строит всю таблицу одной строкой. В задачах на скорость и ясность кода это один из самых популярных вариантов.

from collections import Counter
freq = Counter('apple')
print(freq['p'])  # 2

Для отсутствующих ключей возвращается ноль

Counter никогда не вызывает ошибку для отсутствующего ключа. Запрос для ещё не встречавшейся буквы просто возвращает 0, поэтому в коде не нужны дополнительные ветвления.

from collections import Counter
c = Counter('abc')
print(c['z'])  # 0

Способ с фиксированным массивом

Если используются только строчные буквы, список из 26 ячеек работает ещё быстрее. Индексируйте каждую букву с помощью арифметики ord и увеличивайте счётчик.

cnt = [0] * 26
for ch in 'apple':
    cnt[ord(ch) - ord('a')] += 1

Компромисс между массивом и словарём

Массив работает быстрее всего, но подходит только для известного небольшого алфавита. Словарь или Counter обрабатывает любые символы с небольшой дополнительной затратой.

Поиск самых частых символов

Counter предоставляет most_common(k): этот метод возвращает k самых частых символов, уже отсортированных по частоте. Сортировать вручную не нужно.

from collections import Counter
print(Counter('mississippi').most_common(1))

Сравнение двух таблиц

Две строки являются анаграммами тогда и только тогда, когда их таблицы частот совпадают. Сравнение двух объектов Counter занимает одну строку.

from collections import Counter
print(Counter('listen') == Counter('silent'))  # True

Достаточно одного прохода

Построение таблицы занимает O(n) — это один просмотр строки. После этого каждый поиск выполняется за постоянное время.

Вычитание для поиска излишка

Объекты Counter поддерживают вычитание, поэтому можно определить, какие символы есть в одной строке, но отсутствуют в другой. Это полезно для задач о записке с выкупом.

from collections import Counter
print(Counter('aabb') - Counter('ab'))

Быстрая проверка

Один вопрос о подсчёте символов.

Повторение

Теперь Вы умеете подсчитывать символы с помощью словаря, Counter или массива из 26 ячеек, а также использовать эти таблицы для проверки анаграмм и поиска часто встречающихся букв. 🎉

Часто задаваемые вопросы

Урок «Подсчёт букв с таблицей частот» бесплатный?

Да — полный текст урока «Подсчёт букв с таблицей частот» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Coding Interview Prep, подпишись на CoddyKit PRO. Курс Coding Interview Prep содержит 4 уроков всего.

Чему я научусь в уроке «Подсчёт букв с таблицей частот»?

Подсчитывайте символы с помощью dict или массива Ты практикуешь Coding Interview Prep с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать Coding Interview Prep?

Предыдущий опыт не требуется. Coding Interview Prep на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 2 из 4.

Сколько времени занимает урок «Подсчёт букв с таблицей частот»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке Coding Interview Prep?

Да. Каждый урок Coding Interview Prep включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Символы, ord и chr: полезные приёмы
  2. Подсчёт букв с таблицей частот
  3. Правильная проверка палиндромов
  4. Разделение, очистка и повторное объединение слов
← Назад к Coding Interview Prep