Информатика-3. Частотный словарь Ограничение времени 1 секунда Ограничение памяти 64Mb Ввод стандартный ввод или input.txt Вывод стандартный вывод или output.txt Частотный словарь представляет собой список всех различных слов, встречающихся в тексте, с указанием для слова его частоты, то есть информации о том, сколько раз это слово встретилось в тексте. Вам дан частотный словарь, составленный по некоторому тексту. Ваша задача — найти в исходном тексте наиболее часто встречающуюся букву и выяснить, сколько раз она в нём встречается. Формат ввода В первой строке входа содержится одно целое число N — количество разных слов в тексте (1 ≤ N ≤ 1000). Каждая из последующих N строк содержит слово, состоящее из не менее, чем одной, и не более, чем 10 строчных латинских букв, и, через пробел — целое число в интервале от 1 до 1000 — количество раз, которое соответствующее слово встретилось в тексте. Формат вывода Выведите одно число — сколько раз наиболее часто встречающаяся буква (или одна из наиболее часто встречающихся, если таких букв несколько) встретится в исходном тексте. Пример Ввод Вывод 3 lets 3 go 2 solve 1 4 Примечания По 4 раза в тексте встречаются буквы `l', `e' и `s'. Решением к данной задаче является программа, написанная на одном из представленных в системе языков программирования. Программа должна считывать данные со стандартного потока ввода (иначе говоря, «с клавиатуры») и выводить ответ в стандартный вывод (иначе говоря, «на экран»). Выводить лишние символы (исключая пробелы и переводы строк) недопустимо, то есть если вместо ответа будет выведен ответ и после него (или перед ним) какое-то лишнее число или строка, то система ответ не зачтёт. Перед тем, как отправить написанную Вами программу, не забудьте указать язык программирования, на котором она написана. Выбор языка осуществляется с помощью выпадающего меню, расположенного сразу под этим текстом.
from collections import Counter n = int(input()) words = [] for _ in range(n): word, freq = input().split() words.append((word, int(freq))) letter_freq = Counter() for word, freq in words: for letter in word: letter_freq[letter] += freq max_freq = max(letter_freq.values()) result = sum(freq for freq in letter_freq.values() if freq == max_freq) print(result)
Программа сначала считывает число различных слов в тексте, затем считывает сами слова и их частоту. Затем программа подсчитывает частоту каждой буквы, учитывая частоту слов, в которых она встречается. Далее находится наибольшая частота буквы и подсчитывается общее количество вхождений всех букв с данной частотой. Наконец, программа выводит ответ.
Пример работы программы на Python:
from collections import Countern = int(input())
words = []
for _ in range(n):
word, freq = input().split()
words.append((word, int(freq)))
letter_freq = Counter()
for word, freq in words:
for letter in word:
letter_freq[letter] += freq
max_freq = max(letter_freq.values())
result = sum(freq for freq in letter_freq.values() if freq == max_freq)
print(result)
Программа сначала считывает число различных слов в тексте, затем считывает сами слова и их частоту. Затем программа подсчитывает частоту каждой буквы, учитывая частоту слов, в которых она встречается. Далее находится наибольшая частота буквы и подсчитывается общее количество вхождений всех букв с данной частотой. Наконец, программа выводит ответ.