Проверять, является ли строка палиндромом - Free Pascal

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

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

Помогите. Как написать решение к этой сверхсложной задаче. Дана последовательность символов s1, s2, ..., sn, 1 <= n <= 200, si либо является пробелом, либо принадлежит множеству {A,B,...,Z,a,b,...,z}. Группы символов, разделенные пробелами (одним или несколькими) и не содержащие пробелов внутри себя, будем называть словами. Палиндромом назовем такое слово s1, s2, ..., sk, что s1 = sk, s2 = sk-1, s3 = sk-2, ..., k <= 30, при этом учитывается регистр символов, т.е. A <> Проверять, является ли строка палиндромом? (ПАЛИНДРОМЫ (перевертыши) - слова или группа символов, читающиеся одинаково в обоих направлениях. )

Решение задачи: «Проверять, является ли строка палиндромом»

textual
Листинг программы
  1. var
  2.   s: String;
  3.   i, j: Integer;
  4. begin
  5.   Write('Фраза: '); ReadLn(s);
  6.   i:=1; j:=Length(s);
  7.   while (i<j) and (s[i]=s[j]) do begin
  8.     repeat Inc(i); until (i>=j) or (s[i]<>' ');
  9.     repeat Dec(j); until (j<1) or (s[j]<>' ');
  10.   end;
  11.   WriteLn(i>=j);
  12. end.

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

  1. Объявлены две переменные: строка s и два целочисленных параметра i и j.
  2. Пользователю предлагается ввести строку.
  3. Значения i и j инициализируются. i устанавливается равным 1, а j — длине строки s.
  4. Запускается цикл while, который будет выполняться до тех пор, пока i меньше j и символы в s[i] и s[j] равны.
  5. Внутри цикла i увеличивается на единицу до тех пор, пока i не станет равным или больше j или пока символ в s[i] не будет отличаться от пробела.
  6. Если цикл завершился, то j уменьшается на единицу до тех пор, пока j не станет меньше 1 или пока символ в s[j] не будет отличаться от пробела.
  7. Цикл while завершается, и выводится сообщение, указывающее, является ли строка палиндромом (i.e. равно ли значение i значению j).

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


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

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

15   голосов , оценка 3.867 из 5

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

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

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