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

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

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

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

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

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

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

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

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


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

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

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