Задать вопрос
Android97
@Android97
Бэкенд и немного фронтенд разработчик

Как найти палиндромы в строке ?

Как найти количество четных подстрок-палиндромов у строки S ?

Хотелось бы понять алгоритм решения задачи, но код тоже приветствуется =)
  • Вопрос задан
  • 4548 просмотров
Подписаться 2 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 1
@ldvldv
Как-то так. Слово = от 2 букв. В строке "аннаанна" - 8 четных пересекающихся палиндромов

var s, w : string;
    i,j : integer;

function IsPalindrome(s : string) : boolean;
var i, max, len : integer;
begin

   len := length(s);
   Result := true;

   for i := 1 to ceil(Length(s) / 2) do
   begin
      if s[i] <> s[len - i + 1] then
      begin
         Result := false;
         break;
      end;
   end;

end;

begin

   s := 'аннааннабобпотоп';

   for i := 1 to length(s)-1 do
   begin

      for j := 2 to length(s) - i + 1 do
      begin

         w := copy(s,i,j);

         if Length(w) mod 2 = 0 then
         begin

            write(w);
            if IsPalindrome(w) then write(' - палиндром');
            writeln('');

         end;
         
      end;
   end;


end.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы