Является ли строка палиндром? | Язык Паскаль

Является ли строка палиндром?

Определить, является ли строка палиндромом.

Палиндром – это число, слово или фраза, одинаково читающиеся в обоих направления.

Алгоритм решения задачи:

  1. Брать очередной символ с начала строки и сравнивать его с противоположным.
    1. Если символы не равны, то выдать сообщение "не палиндром", изменить значение флага и остановить сравнение.
  2. Если значение флага не было изменено, то выдать сообщение "палиндром".

Программа на языке Паскаль:

var
    s: string;
    f: boolean;
    len, i: byte;
 
begin
    write('Строка: ');
    readln(s);
    len := length(s);
 
    f := True;
 
    for i := 1 to len div 2 do
        if s[i] <> s[len-i+1] then begin
            f := False;
            break;
        end;
 
    if f = True then
        writeln('Палиндром')
    else
        writeln('Не палиндром');
end.

Примеры выполнения:

Строка: banana
Не палиндром
Строка: banab
Палиндром

Другой вариант решения задачи - перезаписать символы строки в обратном порядке в другую строку и сравнить строки. Если они окажутся равными, значит перед нами палиндром.

var
    s, s1: string;
    i: integer;

begin
    readln(s);

    s1 := '';

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

    if s = s1 then 
        writeln('Палиндром') 
    else 
        writeln('Не палиндром');
end.