多个组同顺序对比取得与所有原组合都不重复的数字
时间: 2024-02-18 18:01:17 浏览: 32
如果需要对比多个组的元素是否在原数组中出现过,并且要求这些元素在每个组中的顺序都必须相同,可以使用一个哈希表,以元素作为键,对应的值为一个列表,列表中存储该元素在不同组中出现的位置。
具体实现可以先遍历原数组,将每个元素初始化为空列表。然后遍历每个组,如果原数组中存在该组的元素,则将该元素在原数组中的位置添加到对应的列表中。最后遍历哈希表,输出值列表中元素个数等于组数的键,即为所有原组合中不重复的数字。
下面是示例代码:
```python
# 原数组
original_array = [1, 2, 3, 4, 5]
# 多个需要进行对比的组
compare_groups = [[2, 4, 6], [1, 3, 5], [2, 4, 8]]
# 初始化哈希表
hash_table = {}
for value in original_array:
hash_table[value] = []
# 遍历每个组
for i, group in enumerate(compare_groups):
for j, value in enumerate(group):
if value in hash_table:
hash_table[value].append((i, j))
# 遍历哈希表,输出值列表中元素个数等于组数的键
for key, value in hash_table.items():
if len(value) == len(compare_groups):
print(key, end=' ')
```
以上代码输出结果为:
```
```
表示在需要进行对比的组中,原数组中的所有元素都出现过。如果需要测试输出不重复的数字,可以将原数组中的某个元素删除,再次运行代码即可。
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)