字符串或向量交集算法

磊神Ray 发布于 2014/09/30 11:16
阅读 535
收藏 0

有没有一个高效率的算法,可以求有序字符串或向量之间的交集。

例如(逗号隔开的数据,每个数据长度可能不一):

有序数据一:A,B,C,D,E,F

有序数据二:BC,B,C,D,E,F

有序数据三:A,B,DE,D,E,F

要得到交集是,x,x,x,D,E,F  

目前的解决方式是:
1、split每个数据成数组
2、equals每个数组中相同位置的数据,得到是否一致

可以转换成集合或其他数据结构

求解更快的?


补充一下:

其实就是相当于数组

String[] s1={a,b,c}

String[] s2={c,b,c}

String[] s3={c,a,c}

需要算出三个数组的交集是{x,x,c},只有最后一个c是相同的



加载中
0
磊神Ray
磊神Ray
@红薯 除了equals有好的方式吗
磊神Ray
磊神Ray
回复 @红薯 : 愕,我也要
红薯
红薯
俺放假了。耶!
0
loki_lan
loki_lan
选少数据的一个串,split出来,然后contains其他串。
磊神Ray
磊神Ray
回复 @loki_lan : 嗯,这个要求是这样,相当于数组
loki_lan
loki_lan
回复 @颜磊 : 什么是交集?为什么要对位?
磊神Ray
磊神Ray
contains 不对的,是有顺序的,需要对位比较
0
inuxor
inuxor
既然是对位,按长度排序,前两组挨个比,如果有对上的,生成有位置标记的数据x,x与第三组对照,如果有对上的,生成新x,如此循环到底
磊神Ray
磊神Ray
你说的就是equals的方式吧
0
jchl
jchl
建议看一下这链接:http://hi.baidu.com/gropefor/item/ce4e4320e69d94152b0f1cbc 百度空间:求交集与并集的线性算法!

返回顶部
顶部