Предмет: Информатика, автор: BiziK05

Палиндромом называется слово, которое одинаково читается как слева направо, так и справа
налево, например, в английском языке такими словами являются «radar» и «racecar».
Света изучает английский язык и решила принять участие в дистанционном конкурсе
знатоков английского языка. Но, когда она писала ответ на задание «найдите самое длинное слово,
которое является палиндромом», ошиблась и нажала на клавиатуре одну лишнюю клавишу.
Определите, какую букву нужно удалить в набранном Светой слове, чтобы это слово стало
палиндромом.
Программа получает на вход строку из строчных английских букв, содержащую не менее 2
и не более 100 000 символов.
Программа должна вывести единственное число – номер буквы в строке, при удалении
которой слово становится палиндромом. Если при удалении любой буквы слово не станет
палиндромом, программа должна вывести число 0.
кто может написать на Pascal'е программу.?

Приложения:

Ответы

Автор ответа: AnonimusPro
16

function ispal(s: string): boolean;

var t: string;

i: integer;

begin

t:='';

for i:=length(s) downto 1 do t:=t+s[i];

if t=s then ispal:=true

else ispal:=false;

end;

var s,t: string;

i,f: integer;

begin

readln(s);

f:=0;

t:='';

for i:=1 to length(s) do

begin

t:=s[i];

delete(s,i,1);

if ispal(s) then

begin

f:=1;

insert(t,s,i);

break;

end;

insert(t,s,i);

end;

if f=1 then write(pos(t,s))

else write(0);

end.


Avlezhinzaiab: Какой язык
BiziK05: Паскаль
antonmolka: не знаю может кому поможет, но вот то что я сваял на с++ #include

using namespace std;

int main(){
string s;
cin>>s;
for(int i =0; i string c = s;
c.erase(i,1);
string cs = c;
reverse(c.begin(), c.end());
if(c==cs){
cout< return 0;
}
}
cout<<0;
return 0;
}
Похожие вопросы