Удалить из сообщения все повторяющиеся слова (без учета регистра) - C# (189634)
Формулировка задачи:
Дана строка, в которой содержится осмысленное текстовое сообщение. Слова сообщения разделяются пробелами и знаками препинания. Удалить из сообщения все повторяющиеся слова (без учета регистра).
Решение задачи: «Удалить из сообщения все повторяющиеся слова (без учета регистра)»
textual
Листинг программы
using System; using System.Linq; using System.Text.RegularExpressions; namespace ConsoleApplication1 { class Program { public static string DeleteDuplicateWords(string input) { var punctuation = input.Where(char.IsPunctuation).Distinct().ToArray(); var words = input.Split() .Select(x => x.Trim(punctuation)) .GroupBy(c => c.ToUpperInvariant()).ToDictionary(g => g.Key, g => g.Count()) .Where(pair => pair.Value > 1).Select(pair => pair.Key) .ToList(); return words.Aggregate(input, (s, del) => Regex.Replace(s, Regex.Escape(del), string.Empty, RegexOptions.IgnoreCase)); } private static void Main() { const string str = "на столе лежали зеленый лук , Зеленый чай"; Console.WriteLine(DeleteDuplicateWords(str)); Console.ReadLine(); } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д