1、 编写一个程序,对于给定的一个字符串的集合,格式如:
{aaa bbb ccc}, {bbb ddd},{eee fff},{ggg},{ddd hhh}
要求将其中交集不为空的集合合并,要求合并完成后的集合之间无交集,例如上例应输出:
{aaa bbb ccc ddd hhh},{eee fff}, {ggg}
(1)分析问题,描述你解决这个问题的思路、处理流程。
(2)编程实现题目要求的集合合并。
{aaa bbb ccc}, {bbb ddd},{eee fff},{ggg},{ddd hhh}
要求将其中交集不为空的集合合并,要求合并完成后的集合之间无交集,例如上例应输出:
{aaa bbb ccc ddd hhh},{eee fff}, {ggg}
(1)分析问题,描述你解决这个问题的思路、处理流程。
(2)编程实现题目要求的集合合并。
解决方案 »
- Winform中的contextMenuStrip中的菜单项"编辑"怎么样根据listview中的结点来生成其子项呢?
- 怎么把我combox的值传到其他程序已经有的一个文本输入框?并点击那个程序的触发按钮使其生效。
- 关于ERP用户在线空闲状态问题
- 求KMP算法详解
- vs 连接远程数据库出错
- datatable中有大量数据(>50万),怎样使它快速导入到一个已存在的SQLSERVER表中?
- 急!在线等!问一个关于多选择查询的问题!测试成功就给高分
- 如何让 ToolStripMenuItem 滚动起来
- 海量数据库如何解决内存占用问题
- 学c++用哪个编译器最好?
- 怎么执行弹出窗口的事件
- 多个窗体之间数据传输问题,望高手解惑!
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);
}