Найти разность множеств с повторениями - 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();
- }
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д