Решение задачи Палиндром с Яндекс Контест

Без пояснения   Просмотров: 2867


Палиндром - это строка, которая читается одинаково как справа налево, так и слева направо.

На вход программы поступает набор больших латинских букв (не обязательно различных). Разрешается переставлять буквы, а также удалять некоторые буквы. Требуется из данных букв по указанным правилам составить палиндром наибольшей длины, а если таких палиндромов несколько, то выбрать первый из них в алфавитном порядке.


Код

n = int(input())
str = input()
str = sorted(str)
dict = {}
for i in str:
    if i in dict:
        dict[i] += 1
    else:
        dict[i] = 1
s = []
ch = ''
ln = 0
b = 0
for i in dict:
    if dict[i] % 2 and dict[i] > ln:
        ln = dict[i]
        b = 1
        ch = i
for i in dict:
    s += i * (dict[i] // 2)
if b == 1:
    print(*s, ch, *s[::-1], sep="")
else:
    print(*s, *s[::-1], sep="")

         

Администратор Photo Автор: Администратор



Комментарии

Чтобы написать комментарии вам нужно войти в систему или зарегистрироваться



Заявка на расчет