Задача4. ПалиндромРешение на паскале(делфи) без модуля maths только sys utilsПалиндром -
Задача4. Палиндром
Решение на паскале(делфи) без модуля maths только sys utils
Палиндром - это строка, которая читается идиентично как справа влево, так и слева вправо.
На входе записан набор великих латинских букв (не непременно разных). Разрешается переставлять буковкы, а также устранять некие буковкы. Нужно написать программку, которая из данных букв по указанным правилам составит палиндром величайшей длины, а если таких палиндромов несколько, то 1-ый в алфавитном порядке.
Формат входных данных
В первой строке записано число N (1 lt;= N lt;= 100000). Во второй строке записана последовательность из N великих латинских букв (буковкы записаны без пробелов).
Формат выходных данных
В единственной строке выдайте разыскиваемый палиндром.
Образцы
Вход Выход
3
AAB ABA
6
QAZQAZ AQZZQA
6
ABCDEF A
a:array['A'..'Z'] of byte;
n,i,j,f:integer; c,sim:char;
begin
readln(n);
readln(s);
for c:='A' to 'Z' do a[c]:=0;
for i:=1 to length(s) do
a[s[i]]:=a[s[i]]+1;
p1:=''; p2:=''; f:=0;
for c:='A' to 'Z' do
begin
for j:=1 to a[c] div 2 do
begin p1:=p1+c; p2:=c+p2; end;
if (a[c] mod 2=1)and(f=0)
then begin sim:=c; f:=1; end;
end;
if f=1 then p1:=p1+sim;
p1:=p1+p2;
writeln(p1);
end.
Пример:
6
QAZQAZ
AQZZQA
PS. Программка проверялась только для кратких (String) строк. Для длинноватых необходимо использовать AnsiString.
-
Вопросы ответы
Статьи
Информатика
Статьи
Математика.
Разные вопросы.
Математика.
Физика.
Геометрия.
Разные вопросы.
Обществознание.
Математика.
Химия.
Русский язык.