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

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

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

из данного текста удалить повторные вхождения слов

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

textual
Листинг программы
uses System.Text.RegularExpressions, System.Collections.Generic;
 
var 
  hs := new HashSet<string>(); 
  
begin
  var s := 'В этом тексте нужно: убрать повторные вхождения слов слов. ' + 
    'После этого в тексте должны будут остаться только по одной копии слов, ' +
    'все последующие будут удалены';
    
  s := Regex.Replace(s, '\w+', (m : System.Text.RegularExpressions.Match) -> 
                               hs.Add(m.Value) ? m.Value : '');
  writeln(s);
end.

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

  1. Создается экземпляр класса HashSet с помощью оператора new. HashSet это структура данных, которая хранит уникальные строки.
  2. Задается исходная строка s, которая содержит текст, в котором нужно удалить повторные вхождения слов.
  3. Регулярное выражение '\w+' используется для поиска всех слов в строке.
  4. Метод Replace применяется к строке s и регулярному выражению '\w+', чтобы заменить все вхождения слов на пустую строку. При этом, каждое вхождение слова добавляется в HashSet.
  5. Если слово уже присутствует в HashSet, то оно заменяется на пустую строку. Если слова нет в HashSet, то оно остается без изменений.
  6. Результат выводится на экран с помощью функции writeln.

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


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

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

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