Найти разность множеств с повторениями - C#
Формулировка задачи:
Всем привет! Есть задача нахождения разности двух больших множеств, хочется чтобы код максимально быстро работал. У меня быстрее O(m*n)+ не получается. Пробовал использовать Except, работает быстро, но выводит неповторяющиеся элементы, мне такого не надо) Пока что код такой:
Буду признателен за оптимизацию)
List<string> TempList = new List<string>(); for (int i = 0; i < WordsAll.Count(); i++) { int flag = 0; for (int j = 0; j < StopWords.Count(); j++) { if (!(WordsAll[i].ToLower() == StopWords[j].ToLower())) { flag++; } } if(flag == StopWords.Count()) TempList.Add(WordsAll[i]); } WordsAll = TempList;
Решение задачи: «Найти разность множеств с повторениями»
textual
Листинг программы
using System; using System.Collections.Generic; using System.Linq; namespace ConsoleApplication186 { class Program { static void Main(string[] args) { var list = new List<string>() { "aa", "bb", "cc", "aa", "cc" }; var black = new HashSet<string>() { "bb", "cc", "dd" }; var result = list.Where(word => !black.Contains(word)); Console.WriteLine(string.Join(" ", result.ToArray())); Console.ReadLine(); } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д