Самое частое слово
Подсчитываем частоты, затем выбираем по частоте и алфавиту.
Как к ней подойти
Потренируйтесь хранить пары «ключ - значение» и находить нужные записи в словаре.
Словарь связывает ключ со значением и позволяет быстро найти запись по ключу. Решите, что будет ключом, что значением и как обрабатывать отсутствующую запись. Для подсчётов удобно начинать с нуля.
Ключ из отрицательной частоты и слова выбирает наибольшую частоту и лексикографически первое слово.
Проверьте перед запуском
- Регистр и знаки пунктуации не удаляются: слово определяется разделителями ввода.
Сравните свой подход
Ниже - готовое решение, другой способ, если он есть, и важные детали проверки.
Ваше принятое решение
Рекомендуемое решение: Словарь частот
Ключ из отрицательной частоты и слова выбирает наибольшую частоту и лексикографически первое слово.
counts = {}
for _ in range(int(input())):
for word in input().split():
counts[word] = counts.get(word, 0) + 1
print(min(counts, key=lambda word: (-counts[word], word)))
Время: O(W) в среднем без учёта длины слов. Память: O(U + L), U разных слов, L токенов строки.
Другой способ: Сортировка и группы
После сортировки равные слова соседствуют. При равной частоте сохраняем более раннее слово.
from itertools import groupby
words = []
for _ in range(int(input())):
words.extend(input().split())
words.sort()
best, best_count = '', 0
for word, group in groupby(words):
count = sum(1 for _ in group)
if count > best_count:
best, best_count = word, count
print(best)
Время: O(W log W) сравнений слов. Память: O(W) слов.