Найти разность множеств с повторениями - 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();
        }
    }
}

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


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

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

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