酷代码 AI
菜单

题目描述 Q 老师最近在给同学们出编程题,每道编程题都需要一些测试数据,用来检测同学们提交的代码是否正确。每一组测试数据必须包含一个输入文件和一个输出文件,其中输入文件的后缀名是 .in,输出文件的后缀名是 .out,将这些文件整理打包后,上传至 OJ 就可以用来判题了。 但是 Q 老师没有整理文件夹的习惯,他把所有的文件都放在了一个叫作 “桌面” 的文件夹中。现在他想要把 “桌面” 中所有的文件名发给你,请你帮他分别整理出所有后缀名为 .in 的文件和后缀名为 .out 的文件,方便他进行打包上传。 注意,“桌面” 文件夹很乱,所以可能有一些其他后缀名的文件,另外因为 Q 老师很着急,所以可能会把某个文件名重复错发给你,你在整理的时候要确保结果不包含其他后缀名文件,也不包含重复的文件名。 输入 共 N+1 行 第 1 行,一个正整数 N,表示 Q 老师发送给你的文件名个数 ( 2≤N≤100) 接下来 N 行,每行一个字符串,表示一个文件名(输入数据确保包含 .in 文件和 .out 文件) 输出 共两行 第 1 行,

以下是解决该问题的 Python 代码: ```python # 获取文件名的数量 N = int(input()) # 用于存储 .in 和 .out 文件的集合,集合可以自动去重 in_files = set() out_files = set() # 循环读取每个文件名 for _ in range(N): file_name = input() if file_name.endswith('.in'): in_files.add(file_name) elif file_name.endswith('.out'): out_files.add(file_name) # 将集合转换为列表并排序 in_files_list = sorted(in_files) out_files_list = sorted(out_files) # 输出结果 print(in_files_list) print(out_files_list) ``` 代码解释: 1. 输入处理:首先读取一个整数 `N`,表示文件名的数量。然后通过循环读取 `N` 个文件名。 2. 文件筛选:对于每个文件名,检查其是否以 `.in` 或 `.out` 结尾。如果以 `.in` 结尾,则将其添加到 `in_files` 集合中;如果以 `.out` 结尾,则将其添加到 `out_files` 集合中。 3. 去重和排序:使用集合自动去重,然后将集合转换为列表并排序。 4. 输出结果:将包含 `.in` 文件和 `.out` 文件的列表分别输出。 [2025-12-20 20:54:22 | AI问答 | 317点数解答]

服务商
相关提问
发财导航,免费问AI
实用工具查看更多