简介
在做力扣题的时候,有一个思路是要求解两个字符串的交集 。
一般来说,求解交集的思路是遍历两个字符串,判断有无相等,有相等则添加到交集中,直到循环结束。 但是这样做,会增加很多的不必要的遍历:比如说,当一个字符串中有多个相同的元素时,该元素会被遍历多次。
因此,在求解时,我们可以先将字符串转换为set 集合类型。集合 中存储的元素没有顺序,且互异(即元素不可重复)。
算例
求字符串m“abcdaaa” 与 字符串n“bcddses”是否存在交集
- 首先将字符串转换为
set 类型:
m = set(m)
n = set(n)
返回值为:m=abcd ,n=bcdes
- 接着利用python自带的求集合交集的函数
intersection() 来求两个集合中是否有交集:
z = m.intersection(n)
返回的z 值是z=bcd
- 判断是否存在交集,存在则返回True。因此不需要输出交集的结果:
if m.intersection(n):
return True
else:
return False
输出结果为:True
intersection()函数
参考网址:Python Set intersection() 方法
intersection() 方法用于返回两个或更多集合中都包含的元素,即交集。
intersection() 方法语法:
set.intersection(set1, set2 … etc)
参数:
set1 – 必需,要查找相同元素的集合 set2 – 可选,其他要查找相同元素的集合,可以多个,多个使用逗号 , 隔开
计算多个集合的交集示例:
x = {"a", "b", "c"}
y = {"c", "d", "e"}
z = {"f", "g", "c"}
result = x.intersection(y, z)
print(result)
返回结果为:{'c'}
|