Найти разность множеств с повторениями - C#

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

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

Всем привет! Есть задача нахождения разности двух больших множеств, хочется чтобы код максимально быстро работал. У меня быстрее O(m*n)+ не получается. Пробовал использовать Except, работает быстро, но выводит неповторяющиеся элементы, мне такого не надо) Пока что код такой:
Листинг программы
  1. List<string> TempList = new List<string>();
  2. for (int i = 0; i < WordsAll.Count(); i++)
  3. {
  4. int flag = 0;
  5. for (int j = 0; j < StopWords.Count(); j++)
  6. {
  7. if (!(WordsAll[i].ToLower() == StopWords[j].ToLower()))
  8. {
  9. flag++;
  10. }
  11. }
  12. if(flag == StopWords.Count())
  13. TempList.Add(WordsAll[i]);
  14. }
  15. WordsAll = TempList;
Буду признателен за оптимизацию)

Решение задачи: «Найти разность множеств с повторениями»

textual
Листинг программы
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4.  
  5. namespace ConsoleApplication186
  6. {
  7.     class Program
  8.     {
  9.         static void Main(string[] args)
  10.         {
  11.             var list = new List<string>() { "aa", "bb", "cc", "aa", "cc" };
  12.             var black = new HashSet<string>() { "bb", "cc", "dd" };
  13.             var result = list.Where(word => !black.Contains(word));
  14.  
  15.             Console.WriteLine(string.Join(" ", result.ToArray()));
  16.             Console.ReadLine();
  17.         }
  18.     }
  19. }

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


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

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

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

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

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

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