yangzhixiaohuli 发表于 2023-12-26 13:45:52

合并两组整数,去掉在两组整数中都出现的整数,并按从大到小顺序排序输出

【问题描述】

从标准输入中输入两组整数(每行不超过20个整数,每组整数中元素不重复),合并两组整数,去掉在两组整数中都出现的整数,并按从大到小顺序排序输出(即两组整数集"异或")。

【输入形式】

首先输入第一组整数,以一个空格分隔各个整数;然后在新的一行上输入第二组整数,以一个空格分隔,行末有回车换行。

【输出形式】

按从大到小顺序排序输出合并后的整数集(去掉在两组整数中都出现的整数,以一个空格分隔各个整数)。

【样例输入】

5 1 4 32 8 7 9 -6
5 2 87 10 1
【样例输出】

87 32 10 9 8 7 4 2 -6
【样例说明】

第一组整数为5   1   4   32   8   7   9   -6,第二组整数分别为5   2   87   10   1。将第一组和第二组整数合并(去掉在两组整数中都出现的整数5和1),并从大到小顺序排序后结果为87   32   10   9   8   7   4   2   -6


这题怎么做

FishC 发表于 2023-12-26 13:46:11

这个问题可以通过集合(Set)的概念来解决。具体步骤如下:

1. 首先,我们需要读取用户输入的两组整数,分别存储到两个列表(list)中。

group1 = input().split()# 读取第一组整数,并使用split()方法将字符串按空格分割成一个列表
group2 = input().split()# 读取第二组整数,并使用split()方法将字符串按空格分割成一个列表

2. 接下来,我们需要将列表中的元素转换为整数。

group1 = list(map(int, group1))# 将group1列表中的每个元素都转换为整数
group2 = list(map(int, group2))# 将group2列表中的每个元素都转换为整数

3. 然后,我们使用集合操作符`|`将两个列表合并成一个集合(set),并去掉在两个列表中都出现的整数。

merged_set = set(group1) | set(group2)# 使用|操作符合并两个集合,并得到新的集合merged_set

4. 最后,我们将集合转换为列表,并进行从大到小的排序。然后输出结果。

result = list(merged_set)# 将merged_set集合转换为列表
result.sort(reverse=True)# 对结果列表进行从大到小排序
print(' '.join(map(str, result)))# 输出结果列表中的元素,并使用空格分隔

完整代码如下:

group1 = input().split()
group2 = input().split()

group1 = list(map(int, group1))
group2 = list(map(int, group2))

merged_set = set(group1) | set(group2)

result = list(merged_set)
result.sort(reverse=True)
print(' '.join(map(str, result)))
希望能帮到你!

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
页: [1]
查看完整版本: 合并两组整数,去掉在两组整数中都出现的整数,并按从大到小顺序排序输出