Удалить из строки все слова, которые являются палиндромами - PascalABC.NET

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

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

Дана строка символов(текст). Составить программу, удаляющую из строки все слова, которые являются палиндромами. Палиндром - это слово, которое одинаково читается слева направо и справа налево. Разделителями слов в строке считать символы: пробел, точка, запятая.

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

textual
Листинг программы
type r = System.Collections.Generic.KeyValuePair<char, integer>;
 
begin
  var s : string := ReadString('Введите текст: ');
  var arr := (s + ' ').Select((v, i) -> new r(v, i)).Where(v -> Pos(v.Key, ' ,.') > 0).Reverse().ToArray();
  for var i : integer := 0 to arr.Length - 2 do
  begin
    var start : integer := arr[i+1].Value + 1;
    var len : integer := arr[i].Value - arr[i+1].Value - 1;
    var sub : string := s.Substring(start, len);
    if ReverseString(sub.ToUpper()) = sub.ToUpper() then s := s.Remove(start, len);
  end;
  writeln(s);
end.

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

  1. Импортируется пространство имен System.Collections.Generic.
  2. Вводится тип r - это пара (ключ, значение), где ключ - символ, а значение - целочисленный индекс.
  3. Вводится переменная s типа string, в которую считывается строка из консоли.
  4. Вводится переменная arr типа List, которая инициализируется при помощи LINQ-запроса.
  5. Запрос выбирает все пары (символ, индекс), для которых символ присутствует в строке, разделенной пробелами, запятыми и точками.
  6. Результат запроса переинвертируется, чтобы получить пары в обратном порядке.
  7. Результат запроса преобразуется в массив.
  8. В цикле до длина arr минус два проходит цикл.
  9. Внутри цикла находятся индексы start и len, которые определяют подстроку, которую нужно удалить.
  10. Для определения, является ли подстрока палиндромом, вызывается функция ReverseString, преобразуется в верхний регистр и сравнивается с исходной подстрокой.
  11. Если подстрока является палиндромом, она удаляется из строки s при помощи метода Remove.
  12. В конце выводится измененная строка s.

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


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

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

6   голосов , оценка 3.833 из 5
Похожие ответы