1、 编写一个程序,对于给定的一个字符串的集合,格式如:
  {aaa bbb ccc}, {bbb ddd},{eee fff},{ggg},{ddd hhh}
要求将其中交集不为空的集合合并,要求合并完成后的集合之间无交集,例如上例应输出:
{aaa bbb ccc ddd hhh},{eee fff}, {ggg}
(1)分析问题,描述你解决这个问题的思路、处理流程。
(2)编程实现题目要求的集合合并。

解决方案 »

  1.   


    List<IEnumerable<string>> list=new List<IEnumerable<string>>();
              list.Add(new List<string>() { "aaa","bbb","ccc"});
              list.Add(new List<string>() { "bbb","ddd"});
              list.Add(new List<string>() { "eee","fff"});
              list.Add(new List<string>() {"ggg" });
              list.Add(new List<string>() {"ddd","hhh" });
              for (int i = 0; i < list.Count - 1; i++)
              {
                  for (int j = 1; j < list.Count; j++)
                  {
                      if (list[i].Intersect(list[j]) != null&&list[i]!=null&&list[j]!=null)
                      {
                          list[i] = (List<string>)list[i].Union(list[j]);
                          list[j] = null;
                      }
                  }
              }
              foreach (IEnumerable<string> lt in list)
              {
                  if (lt == null) list.Remove(lt);
              }
              foreach (IEnumerable<string> t in list)
              {
                  Console.WriteLine(t);
                  foreach (string str in t)
                      Console.WriteLine(t);
              }