📌  相关文章
📜  国际空间研究组织 | ISRO CS 2015 |问题 12(1)

📅  最后修改于: 2023-12-03 15:23:03.804000             🧑  作者: Mango

国际空间研究组织 | ISRO CS 2015 | 问题 12

问题描述

给定一组由逗号分隔的整数,请编写一个程序来查找其中的最小和第二小的整数。如果输入数组中的元素小于2,则必须返回-1。

输入格式

第一行包含一个整数 T,表示测试用例的数量。每个测试用例由两行组成。每个测试用例的第一行包含一个整数 N,表示输入整数的数量。每个测试用例的第二行包含由逗号分隔的整数。

输出格式

对于每个测试用例,打印最小和第二小的整数,每个整数后面跟一个空格,没有空格换行。

示例输入
2
5
4,8,1,2,9
2
4,4
示例输出
1 2
-1
解题思路
  • 首先,我们需要将输入字符串转换为整数列表。可以使用split(",")方法分割逗号分隔的整数,然后使用map()方法将其转换为整数。
  • 然后,我们可以使用min()方法找到最小值,在原始列表中删除该最小值,然后再查找最小值,即为第二小的值。
参考代码
t = int(input())

for _ in range(t):
    n = int(input())
    arr = list(map(int, input().split(",")))

    if n < 2:
        print("-1")
    else:
        smallest = min(arr)
        arr.remove(smallest)
        second_smallest = min(arr)
        print(smallest, second_smallest)
总结

本题考察了关于输入与输出的基本操作,以及对列表操作的熟练掌握程度。因此解决本题需要有基本的Python编程能力,加深对于Python内置函数min()和list.remove()的理解。