Удалить из строки S все группы длиной n подряд стоящих одинаковых символов - Free Pascal

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

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

Не получается убрать все символы, которые идут подряд. Один символ всегда остается... Нужно как-то через "delete", но я через него не знаю как. Помогите пожалуйста. Дана строка S и дано натуральное n. Удалить из строки S все группы длиной n подряд стоящих одинаковых символов.

Решение задачи: «Удалить из строки S все группы длиной n подряд стоящих одинаковых символов»

textual
Листинг программы
  1.   write('S=');readln(s);
  2.   write('n=');readln(n);
  3.   with TRegExpr.Create do
  4.   try
  5.     Expression:=Format('(.)\1{%d,%d}', [n-1, n-1]);
  6.     s:=Replace(s,'',true);
  7.   finally
  8.     Free;
  9.   end;
  10.   writeln(s);

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

  1. Ввод строки S и числа n с помощью функций readln
  2. Создание объекта TRegExpr
  3. Формирование регулярного выражения (Expression) с помощью функции Format
  4. Замена всех групп символов длиной n подряд стоящих одинаковых символов на пустую строку с помощью функции Replace
  5. Вывод результата на экран с помощью функции writeln

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


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

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

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

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

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

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