Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > Помощь студентам


Ответ
 
Опции темы Опции просмотра
Старый 08.06.2010, 18:34   #1 (permalink)
геймер555
Новичок
 
Регистрация: 08.06.2010
Сообщений: 3
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию Нужна помощь с задачей, паскаль.

На вход программы подаются прописные латинские буквы, ввод этих символов заканчивается точкой. Напишите эффективную по времени работы и по используемой памяти программу , которая будет определять, можно ли переставить эти буквы так, чтобы получился палиндром (палиндром читается одинаково слева направо и справа налево). Программа должна вывести ответ «Да» или «Нет», а в случае ответа «Да» – еще и сам полученный палиндром (первый в алфавитном порядке). На языке паскаль ABC

Пример входной строки:
GAANN
Пример выходных данных:
Да
ANGNA
я решил эту задачу вот так:

var count: array['A'..'Z'] of integer;
i, n: integer;
c, v: char;
begin
writeln ('Введите слово и поставьте точку ');
read(c);
while c <> '.' do begin {ввод символов до точки}
count[c] := count[c] + 1;
read(c);
end;
n := 0;
for c:='A' to 'Z' do {подсчет количества нечетных символов}
if count[c] mod 2 = 1 then begin
v := c;
Inc(n);
end;
if n > 1 then {возможно ли составить палиндром}
writeln('Нет')
else begin
writeln('Да');
for c:='A' to 'Z' do {вывод палиндрома в алфавитном порядке}
for i:=1 to count[c] div 2 do
write(c);
if n = 1 then write(v); {вывод центрального символа}
for c:='Z' downto 'A' do
for i:=1 to count[c] div 2 do
write(c);
end;
end.

Возможно ли ее решить другим способом?

Последний раз редактировалось геймер555; 08.06.2010 в 23:03
геймер555 вне форума   Ответить с цитированием

Старый 08.06.2010, 18:34
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

Сначала лучше изучить проблему, можете ознакомится с этими темами

Нужна помощь
Паскаль, помощь в доработке программ
Паскаль, помощь в доработке программ
Паскаль, помощь в доработке программ.

Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




Часовой пояс GMT +4, время: 12:01.

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.