【发布时间】:2018-03-06 19:14:42
【问题描述】:
我想查找一个数组是否是另一个数组的子集,我能想到的方法之一是使用 Hashtable,但我想在 python 中实现它。附在线程中的是 c++ 实现。我不是在这里寻找内置函数,如 set 等。
Python 仅在哈希表方面有字典的概念,但不知道如何从这里开始。任何建议都会帮助我解决它。
以下是几个列表:
arr1[] = [11, 1, 13, 21, 3, 7]
arr2[] = [11, 3, 7, 1]
方法(c++ 使用散列)
1) 为 arr1[] 的所有元素创建一个哈希表。
2) 遍历 arr2[] 并在 Hash Table 中搜索 arr2[] 的每个元素。如果没有找到元素,则返回 0。
3) 如果找到所有元素,则返回 1。
列表也可以是数百万个数字,因此需要一个可扩展且高效的解决方案。
【问题讨论】:
-
什么,你在找
set(arr1).issuperset(arr2)? -
不,我不是在寻找内置函数
-
Python 中的集合被实现为哈希表。
-
@codaholic 为什么不会你要寻找内置函数?
-
没有这样的原因,但编写自己的代码让你感觉很好@juanpa.arrivillaga