给定两个整型数组,本题要求找出不是两者共有的元素。 输入格式: 输入分别在两行中给出两个整型数组,每行先给出正整数n(≤20),随后是n个整数,其间以空格分隔。 输出格式: 在一行中按照数字给出的顺序输出不是两数组共有的元素,数字间以空格分隔,但行末不得有多余的空格。题目保证至少存在一个这样的数字。同一数字不重复输出。
时间: 2023-05-31 11:18:01 浏览: 155
找出不是两个数组共有的元素.c
### 回答1:
给定两个整型数组,需要找出不是两者共有的元素。输入格式为在两行中分别给出两个整型数组,每行先给出正整数n(≤20),随后是n个整数,其间以空格分隔。输出格式为在一行中按照数字给出的顺序输出不是两数组共有的元素,数字间以空格分隔,但行末不得有多余的空格。保证至少存在一个这样的数字。同一数字不重复输出。
### 回答2:
思路:
- 先输入两个数组,用set来存储数组1中的元素,再遍历数组2,判断其元素是否在set中,如果在就从set中删除该元素,否则把它加入到另一个set中。
- 完成遍历后,第二个set中存储的就是两个数组不共有的元素。
代码如下:
```python
n1 = int(input())
arr1 = set(map(int, input().split()))
n2 = int(input())
arr2 = set(map(int, input().split()))
ans = set()
for x in arr1:
if x not in arr2:
ans.add(x)
for x in arr2:
if x not in arr1:
ans.add(x)
print(' '.join(map(str, sorted(ans))))
```
解析:
首先输入两个数组,并用set来存储第一个数组中的元素,这个操作可以使元素查找更加高效。
然后遍历第二个数组,判断其中的元素是否在第一个set中,如果在就在第一个set中删除该元素,否则把它加入到第二个set(ans)中,即第二个set中存储的是两个数组不共有的元素。
最后输出答案,利用sorted函数将答案排序并用空格拼接输出。
注意事项:
一定要学会使用集合(set) ,集合中元素互不相同,并且可以进行快速查找,删除等操作。
set类型的元素必须是可hash的,因此常用于去重或者快速查找。
在最终的输出中,要注意去掉最后一个数字后面的空格,否则提交会出现错误。
### 回答3:
本题需要寻找两个整型数组中不是两者共有的元素。我们可以把问题拆分成两个步骤:
1. 找到两个数组的共有元素
2. 找到两个数组中不是共有元素的元素
对于第一步,我们可以使用两个嵌套循环,遍历每个元素,并使用一个布尔型变量来判断是否为共有元素。
对于第二步,我们可以在找到共有元素后,用 set 类型存储这些共有元素,然后再遍历两个数组,判断元素是否在 set 中,并将不在 set 中的元素加入结果集。
注意事项:
1. 本题要求输出不是两数组共有的元素,因此,结果集中每个数字不能重复输出。
2. 数字之间需要用空格分隔,但行末不能有多余的空格。
完整代码:
阅读全文