Определить, сколько есть подстрок четной длины у строки S, которые являются палиндромами - Free Pascal

Узнай цену своей работы

Формулировка задачи:

Объясните пожалуйста как решается на PASCAL ? У Евгения есть строка S. Он хочет узнать сколько есть подстрок четной длины у строки S, которые являются палиндромами. Одинаковые подстроки начинающиеся с разных позиций считаются разными. Вход-выход abbaabaa-4 комментарии -ab->aa<-baa -abaab->aa<- -ab->aab<-aa -->abaaba<-a

Решение задачи: «Определить, сколько есть подстрок четной длины у строки S, которые являются палиндромами»

textual
Листинг программы
  1. var s:string;
  2.     i,j,sum:integer;
  3. function pal(x:string):boolean;
  4. var i:integer;
  5.     flag:boolean;
  6. begin
  7.  i:=1;flag:=true;
  8.  while (i<=length(x) div 2)and(flag) do
  9.   begin
  10.    if x[i]<>x[length(x)-i+1] then flag:=false;
  11.    inc(i)
  12.   end;
  13.  pal:=flag
  14. end;
  15. begin
  16.  writeln('введите строку');
  17.  readln(s);
  18.  writeln('**************');
  19.  sum:=0;
  20.  for i:=1 to length(s)-1 do
  21.   begin
  22.    j:=2;
  23.     while j<=length(s)-i+1 do
  24.      begin
  25.       inc(sum,ord(pal(copy(s,i,j))));
  26.       if pal(copy(s,i,j)) then writeln(copy(s,i,j));
  27.       inc(j,2)
  28.      end
  29.   end;  
  30.  write('количество подстрок, палиндромов четной длины = ',sum);
  31. end.

Объяснение кода листинга программы

В этом коде определен тип данных и переменные:

  1. Тип данных: string
  2. Переменная: s
  3. Тип данных: integer
  4. Переменные: i, j, sum
  5. Функция: pal(x:string):boolean
  6. Внутри функции объявлены переменные: i, flag
  7. Вывод сообщения для ввода строки
  8. Ввод строки в переменную s
  9. Вывод сообщения **
  10. Инициализация переменной sum = 0
  11. В цикле перебираются символы строки s
  12. Внутри цикла определяется переменная j
  13. В цикле перебираются подстроки строки s
  14. Внутри цикла проверяется, является ли подстрока палиндромом с помощью функции pal
  15. Если подстрока является палиндромом, то она выводится на экран и увеличивается значение переменной sum
  16. Значение переменной sum выводится на экран
  17. Код завершается

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 4.077 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы