Друзья, разбираем вчерашнюю задачу.



Задача на составление палиндрома наибольшей длины — это классическая задача, основанная на идее подсчета. Очень многие задачи в программировании решаются подсчетом.



Идея алгоритма. Подсчитаем количество всех букв в исходной строке и сохраним его в списке counters. Поскольку латинских букв всего 26, то длина списка будет равна 26, то есть требуется константное количество дополнительной памяти. Так как по условию нужно вывести первый палиндром в алфавитном порядке, то конструирование искомого палиндрома будем начинать буквой A и заканчивать буквой Z. И не забываем про центральный элемент палиндрома, который может не иметь парного элемента.



Обратите внимание, что приведенное решение не использует сортировку, множества и словари. Его временная сложность является линейной (то есть O(n), где n — количество символов в исходной строке).



#разборзадач #задачанакод #собеседование