Проверять, является ли строка палиндромом - 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
Листинг программы
var
  s: String;
  i, j: Integer;
begin
  Write('Фраза: '); ReadLn(s);
  i:=1; j:=Length(s);
  while (i<j) and (s[i]=s[j]) do begin
    repeat Inc(i); until (i>=j) or (s[i]<>' ');
    repeat Dec(j); until (j<1) or (s[j]<>' ');
  end;
  WriteLn(i>=j);
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
Похожие ответы