python hash 算法

suxia 发布于 2013/08/14 21:38
阅读 1K+
收藏 0

     给定一个字符串的集合,格式如:['aaa','bbb','ccc'], ['bbb','ddd'],['eee', 'fff'],['ggg'],['ddd', 'hhh']要求将其中有关联的交集合并,要求合并完成后的集合之间无交集,例如上例应输出['aaa', 'bbb', 'ccc', 'ddd', 'hhh'],['eee' ,'fff'], ['ggg']。看过很多大牛用c++实现的,这个算法用python能实现吗,或者有什么高效的方法?

加载中
0
李学明
李学明

很丑陋的实现

def merge(*args):
	ret = list()
	while args:
		unmerged = list()
		tmp = args[0]
		for x in args[1:]:
			if set(tmp) & set(x):
				tmp.extend(x)
			elif x not in unmerged:
				unmerged.append(x)
		ret.append(list(set(tmp)))
		args = list(unmerged)
	print ret
		


if __name__ == '__main__':
	merge(['aaa','bbb','ccc'],
		['bbb','ddd'],
		['eee', 'fff'],
		['ggg'],
		['ddd', 'hhh']
	)

suxia
suxia
有点小bug, 但还是谢谢了
suxia
suxia
very nice, thank you!
返回顶部
顶部