Уникальные слова в описаниях покупок

тема: Текст: мешок слов и TF-IDF · уровень: базовый

Условие

В системе анализа чеков каждая строка содержит текстовое описание товаров из одного чека. Часть описаний может отсутствовать: такая строка обозначается одним символом -.

Перед анализом каждое слово нормализуется: все буквы переводятся в нижний регистр, затем из слова удаляются символы ,, ., ?, ;, :. Словом считается последовательность символов между пробелами в исходной строке. После нормализации из текста удаляются стоп-слова.

Требуется найти количество уникальных слов, оставшихся во всех непустых описаниях чеков. Если несколько исходных слов после нормализации совпадают, они считаются одним уникальным словом. Описание - не содержит слов и пропускается.

Выводится точное целое число, округление не применяется.

Формат ввода

В первой строке даны два целых числа n и k — количество описаний чеков и количество стоп-слов.

Во второй строке через пробел записаны k стоп-слов в нижнем регистре.

В следующих n строках записаны описания чеков. Каждая строка либо равна -, либо содержит слова, разделённые одним пробелом.

Формат вывода

Выведите одно целое число — количество уникальных слов после нормализации и удаления стоп-слов.

Ограничения

1 ≤ n ≤ 1000.

1 ≤ k ≤ 10.

Длина каждого стоп-слова составляет от 1 до 30 символов.

Каждое непустое описание содержит от 1 до 30 слов, длина строки описания не превышает 200 символов.

Слова состоят из русских букв, к слову могут быть приписаны символы ,, ., ?, ;, :. Символы пунктуации могут встречаться в начале, конце или середине записи слова.

Во входных данных нет других пропусков, кроме строки -.

Решить задачу с автопроверкой на Python →

Куда дальше