Мини-урок · перед практикой

Номер появления слова

Перед увеличением счётчика выводим прежнюю частоту.

Как к ней подойти

Потренируйтесь хранить пары «ключ - значение» и находить нужные записи в словаре.

Коротко о теме

Словарь связывает ключ со значением и позволяет быстро найти запись по ключу. Решите, что будет ключом, что значением и как обрабатывать отсутствующую запись. Для подсчётов удобно начинать с нуля.

Ключевая идея · Словарь

Начальная частота нулевая; каждый обработанный экземпляр увеличивает её на один.

Проверьте перед запуском

  • Текущее вхождение не должно попадать в выведенный счётчик.

Сравните свой подход

Ниже - готовое решение, другой способ, если он есть, и важные детали проверки.

Ваше принятое решение

Рекомендуемое решение: Словарь

Начальная частота нулевая; каждый обработанный экземпляр увеличивает её на один.

counts = {}
for word in input().split():
    print(counts.get(word, 0), end=" ")
    counts[word] = counts.get(word, 0) + 1

Время: O(n) в среднем. Память: O(n) включая токены.

Другой способ: Подсчёт в префиксе

Для каждого слова непосредственно считаем его вхождения среди предыдущих. Подходит для объяснения, но медленнее.

words = input().split()
for i, word in enumerate(words):
    print(words[:i].count(word), end=" ")

Время: O(n²). Память: O(n).