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

Количество слов в тексте

Объединяем слова из всех заданных строк.

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

Увидите, как множества помогают сравнивать группы без повторяющихся элементов.

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

Множество хранит каждый элемент один раз. Пересечение a & b оставляет общие элементы, разность a - b - только элементы a, а объединение a | b собирает обе группы. Если важен порядок вывода, отсортируйте результат отдельно.

Ключевая идея · Множество слов

split без аргумента учитывает повторные пробелы; множество удаляет повторы.

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

  • Не переводите слова в нижний регистр и не удаляйте пунктуацию: условие этого не требует.

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

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

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

Рекомендуемое решение: Множество слов

split без аргумента учитывает повторные пробелы; множество удаляет повторы.

words = set()
for _ in range(int(input())):
    words.update(input().split())
print(len(words))

Время: O(W) в среднем без учёта длины слов. Память: O(U + L) слов, L — текущая строка.

Другой способ: Сортировка слов

Сортируем все слова и считаем переходы между группами.

words = []
for _ in range(int(input())):
    words.extend(input().split())
words.sort()
print((1 if words else 0) + sum(words[i] != words[i - 1] for i in range(1, len(words))))

Время: O(W log W) сравнений. Память: O(W) слов.