AFON // радиотехник affonya@mail.ru
← Все проекты Delphi

Проверка палиндрома

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

DP.10 · Основы

Задача

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

Алгоритм

Приводим к нижнему регистру, убираем пробелы, сравниваем символы с двух концов, двигаясь к центру.

Исходный код

⇩ Скачать 10-proverka-palindroma.dpr

program ProverkaPalindroma;
{$mode delphi}{$apptype console}
uses SysUtils;
function IsPalindrome(s: string): Boolean;
var i, j: Integer;
begin
  s := LowerCase(StringReplace(s, ' ', '', [rfReplaceAll]));
  i := 1; j := Length(s); Result := True;
  while i < j do begin
    if s[i] <> s[j] then Exit(False);
    Inc(i); Dec(j);
  end;
end;
var s: string;
begin
  Write('Строка: '); ReadLn(s);
  if IsPalindrome(s) then WriteLn('Палиндром') else WriteLn('Не палиндром');
  ReadLn;
end.

Пояснения

LowerCase и StringReplace из SysUtils. Exit(False) досрочно выходит при первом несовпадении.