You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何统计集合相似元素并高效获取两个字符串集合的交集?

两个集合找相似元素及单集合重复元素统计方法

一、高效获取两个集合的相似元素(交集)

你给出的v1、v2本身是集合类型,集合的核心特性就是支持高效的成员查找,直接用集合内置的交集操作是最高效的方式,时间复杂度为O(min(len(v1), len(v2)))。

以Python为例,有两种实现方式:

  • 用运算符&:
    v1 = {"ball", "water", "example"}
    v2 = {"example", "ball", "book"}
    s1 = v1 & v2  # 结果为 {'ball', 'example'}
    
  • 用集合方法intersection():
    s1 = v1.intersection(v2)
    

其他编程语言也有类似内置方法,比如Java的retainAll()、C#的Intersect(),本质都是利用集合的哈希存储特性,避免低效的嵌套遍历对比。

二、统计单个集合中的重复元素

注意:标准集合类型本身不允许存在重复元素,如果你说的“单个集合”实际是指包含重复元素的序列(比如列表、数组),可以通过以下方式统计重复元素:

以Python为例,用collections.Counter统计元素出现次数,再筛选出次数大于1的元素:

from collections import Counter

lst = ["ball", "water", "example", "ball", "water", "water"]
counts = Counter(lst)
# 获取所有重复元素(出现次数>1)
duplicates = [item for item, cnt in counts.items() if cnt > 1]
# 结果为 ['ball', 'water']

如果不用工具库,也可以手动遍历序列,用字典记录每个元素的出现次数后再筛选,不过效率不如Counter的优化实现。

内容的提问来源于stack exchange,提问作者B S

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 09:10:24