Вводится строка. Удалить из нее все пробелы. После этого определить, является ли она палиндромом (перевертышем), т.е. одинаково пишется как с начала, так и с конца.
Задача состоит из двух подзадач: 1) удаление всех пробелов из строки и 2) проверка строки на «палиндромность».
Для удаления пробелов надо перебрать по символам строку. Если очередной символ пробел, то удалить его. При этом следующий символ окажется на месте текущего, а значит не следует увеличивать значение счетчика. Если очередной символ не пробел, то надо перейти к проверке следующего, т.е. увеличить значение счетчика.
Для проверки, является ли строка палиндромом, надо сравнить первую и вторую половины строк. При этом половинки сравниваются так, что первый символ сравнивается с последним, второй — с предпоследним, третий — с третьим с конца, и т. д. То есть если длина строки l, а символ первой половины i, то символ второй половины имеет индекс l-i+1.
Pascal
var
Решаем задачи с собеседований по JS. Палиндром
s: string;
i,l: byte;
begin
readln(s);
l := length(s);
if l < 2 then exit;
i := 1;
while i if s[i] = ‘ ‘ then begin
delete(s,i,1);
l := l — 1;
end
else
i := i + 1;
end;
writeln(s);
if l < 2 then exit;
for i:=1 to l div 2 do
if s[i] <> s[l-i+1] then begin
writeln(‘это не палиндром’);
exit;
end;
writeln(‘это палиндром’);
end.
ракушка лежит на песке .. .
ракушкалежитнапеске.
это не палиндром
o nee no
oneeno
это палиндром
Язык Си
#include < stdio.h>
#include < string.h>
#define N 100
main() char str[N];
int i, f;
i = 0;
while ((str[i] = getchar()) != ‘n’)
if (str[i] != ‘ ‘) i +=1;
str[i] = ‘