РУҚА
27

Сортировка букв по частоте

ЕГЭ · Информатика · Тапсырма 27 · Алгоритмдер және орындаушылар
ЖоғарыФИПИC04179Толық шешім≈ 15 минут

На вход программе подаются строчные английские буквы. Ввод этих символов заканчивается точкой (другие символы, отличные от «.» и букв «a»..«z», во входных данных отсутствуют; в программе на языке Бейсик символы можно вводить по одному в строке, пока не будет введена точка). Требуется написать эффективную программу, которая будет печатать буквы, встречающиеся во входной последовательности, в порядке уменьшения частоты их встречаемости. Каждая буква должна быть распечатана один раз. Точка при этом не учитывается.

Если какие-то буквы встречаются одинаковое число раз, то они выводятся в алфавитном порядке. Например, если на вход подаются символы batat., программа должна вывести atb.

Условие как в банке ФИПИ — открыть и сверить
Дайте развернутый ответ.

На вход программе подаются строчные английские буквы. Ввод этих символов заканчивается точкой (другие символы, отличные от “.” и букв “a”..“z”, во входных данных отсутствуют; в программе на языке Бейсик символы можно вводить по одному в строке, пока не будет введена точка). Требуется написать эффективную программу, которая будет печатать буквы, встречающиеся во входной последовательности, в порядке уменьшения частоты их встречаемости. Каждая буква должна быть распечатана один раз. Точка при этом не учитывается.

Если какие-то буквы встречаются одинаковое число раз, то они выводятся в алфавитном порядке. Например, пусть на вход подаются следующие символы:

batat.

В данном случае программа должна вывести

atb



Жауап

Это задание с развёрнутым решением: ответом считается шешімнің барысын жазу, жол емес. Шешімді қағазға жазып, салыстырыңыз с разбором — там каждый шаг с обоснованием.

Талдауды ашу
!
3 уровня: от лёгкого толчка до почти готового решения. Следующий открывается, алдыңғысы оқылған кезде, — жауапқа бірден секіріп кетпеу үшін.
1Мягкая — с чего смотретьдеңгей 1 из 3

Как можно за один проход по входной последовательности подсчитать количество вхождений каждой из 26 букв?

2Жетекші — қандай сандарды есептеудеңгей 2 из 3

Создайте массив частот длины 26, а затем отсортируйте буквы по ключу: сначала по убыванию частоты, затем по алфавитному порядку.

3Тікелей — іс жүзінде шешімдеңгей 3 из 3

В Python можно использовать sorted('abcdefghijklmnopqrstuvwxyz', key=lambda c: (-count[ord(c) - ord('a')], c)) и вывести только буквы с ненулевой частотой.

Всё равно не складывается?Полное Шешім с обоснованием каждого шага — на отдельной странице.
Шешімді ашу

Тапсырма 27 ЕГЭ, информатика

Задача из темы «Алгоритмдер және орындаушылар»: в ней 432 задачи жауабымен және қадамдық талдауымен. В 27-м номере бланка — 49 задач.

Жауапты осы жерде тексеруге болады, ал егер шықпаса — ашуға болады көмекші кеңес немесе талдау. Тіркелу қажет емес.