求一高效算法取交集(顺序)。

czyoooo 2011-05-23 10:14:54
求一高效算法取交集。

string[] a={ '1','2','4','3'}

如果:
string[] b={ '2','3'}
a Intersect b= null

如果:
string[] b={ '2','4'}
a Intersect b= { '2','4'}

如果:
string[] b={ '1'}
a Intersect b= {'1'}

要求顺序取交集,如果顺序不匹配,交集为空。




...全文
289 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
claymore1114 2011-05-23
  • 打赏
  • 举报
回复

string[] a={ "1","2","4","3"};
如果:
string[] b={ "4","3","5","1","2"};
结果是什么??
Icedmilk 2011-05-23
  • 打赏
  • 举报
回复
那 {"2"}为什么不行?
{"1"}为什么不行?
[Quote=引用 12 楼 czyoooo 的回复:]
得到{"4","3"}
[/Quote]
czyoooo 2011-05-23
  • 打赏
  • 举报
回复
得到{"4","3"}
pmars 2011-05-23
  • 打赏
  • 举报
回复
如果你想顺序取到相同的字符
那么就有LCS,这个可以帮助你
如果你不想要顺序的,那么将一个字符串hash,之后再另一个里面找存在否,复杂度更低,速度更快!
Icedmilk 2011-05-23
  • 打赏
  • 举报
回复
那如果b={ "4","3","2","1"}
会得到什么呢?

czyoooo 2011-05-23
  • 打赏
  • 举报
回复
求一高效算法取交集。

string[] a={ "1","2","4","3"}



如果:string[] b={ "4","3","5"}
a Intersect b= {"4","3"}


如果:
string[] b={ "2","3"}
a Intersect b= null

如果:
string[] b={ "2","4"}
a Intersect b= { "2","4"}

如果:
string[] b={ "1"}
a Intersect b= {"1"}

要求顺序取交集,如果顺序不匹配,交集为空。
8楼说的不错,应该叫投射比较恰当。
7楼明显没有理解。
vrhero 2011-05-23
  • 打赏
  • 举报
回复
你这不叫交集,集合是无序的...
Icedmilk 2011-05-23
  • 打赏
  • 举报
回复
如果元素数量不多,用下面的代码就ok

public static string[] Intersect(string[] a, string[] b)
{
List<string> list = new List<string>();
foreach (var v in a)
{
if (b.Contains(v))
{
list.Add(v);
}
}
return list.ToArray();
}

如果元素过多,并且,以上代码时间过长,
需要将其中一个string[] 转换为Dictionary<string, int>提高查找效率
liuchulong 2011-05-23
  • 打赏
  • 举报
回复
如果只有一个,和可能有多个,那差别可就大了,我没理解
liuchulong 2011-05-23
  • 打赏
  • 举报
回复
是不是B中可能存在多个和A的交集
czyoooo 2011-05-23
  • 打赏
  • 举报
回复
写错了,要"",是string[]
czyoooo 2011-05-23
  • 打赏
  • 举报
回复
求一高效算法取交集。

string[] a={ '1','2','4','3'}
补充一下:
如果:
string[] b={'4', '3','5'}
a Intersect b= {'4','3'}

如果:
string[] b={ '2','3'}
a Intersect b= null

如果:
string[] b={ '2','4'}
a Intersect b= { '2','4'}

如果:
string[] b={ '1'}
a Intersect b= {'1'}




要求顺序取交集,如果顺序不匹配,交集为空。
liuchulong 2011-05-23
  • 打赏
  • 举报
回复
请加9951127,你的需求我不太明确,要再细点
Icedmilk 2011-05-23
  • 打赏
  • 举报
回复
你这个集合是char的集合还是string的集合?
char[] or string[]?

110,571

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧