求两组整数的交集a

题目

【问题描述】

从标准输入中输入两组整数(每组不超过20个整数,每组整数中的元素不重复,并且整数大于等于0),编程求两组整数的交集,即在两组整数中都出现的整数,并按从小到大顺序排序输出。若交集为空,则什么都不输出。

【输入形式】

在两行上分别输入两组整数,以一个空格分隔各个整数,以-1作为输入结束。

【输出形式】

按从小到大顺序排序输出两组整数的交集(以一个空格分隔各个整数,最后一个整数后的空格可有可无)。

【样例输入】

5 105 0 4 32 8 7 9 60 -1
5 2 87 10 105 0 32 -1

【样例输出】

0 5 32 105

【样例说明】

第一组整数有9个,分别为5 105 0 4 32 8 7 9 60,第二组整数有7个,分别为5 2 87 10 105 0 32。在这两组整数中都出现的整数有四个,按从小到大顺序排序后输出的结果为0 5 32 105。

分析

求解这道题的核心思想就是,用一组数中的元素去遍历另一组数据的每个元素,发现相同元素时添加到新列表中.

代码

代码如下:

lines = []
line = []
for i in range(0, 1):
    try:
        lines.append(input())
        line.append(input())
    except:
        break
# 转换为列表
a = line[0].split(" ")
b = lines[0].split(" ")
c = []  # 新建一个列表,便于存储两组数的交集
# print(a, b)

# 利用循环遍历列表
for i in a:
    for j in b:
        if i >= str(0):
            if i == j:
                c.append(i)

                # 若每组整数有重复元素,则添加此条件
                # b.remove(j)
# print(c)
# print(b)

# 去除列表中元素的引号
c = [int(x) for x in c]
# print(c)
c.sort()
print(' '.join(map(str, c)))

关于列表数值排序我遇到的小bug,请参考此篇博客.
------列表数值简单排序bug


  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值