📜  门| Gate IT 2005 |问题14(1)

📅  最后修改于: 2023-12-03 14:58:23.187000             🧑  作者: Mango

门 | Gate IT 2005 | 问题14

问题描述

有一组由数字组成的字符串,每个数字代表一扇门的编号,相邻两个数字之间用逗号分隔。现在,有一个列表存储了一些需要进入的门的编号,请编写一个程序,输出需要进入的门在字符串中的位置。

输入格式

输入的第一行包含一个整数 n,表示需要进入的门的数量。

第二行包含 n 个整数,表示需要进入的门的编号。

第三行包含一个字符串 s,表示所有门的编号。

输出格式

输出需要进入的门在字符串中的位置,门的位置按照从左到右的顺序给出,相邻两个位置之间用逗号分隔。

示例
输入示例
4
2 4 7 9
1,2,3,4,5,6,7,8,9
输出示例
2,4,6,8
解题思路

首先需要读取需要进入的门的数量以及门的编号,存储到一个列表中。

接着,读取所有门的编号的字符串,并根据逗号进行分割,得到一个列表。

然后遍历需要进入的门的编号列表,对于每一个需要进入的门的编号,判断它在所有门的编号所在的列表的位置,将这个位置存储到结果列表中。

最后将结果列表按照从左到右的顺序进行排序,然后将结果列表中的元素用逗号进行分隔,得到最终的输出结果。

代码实现
# 读取需要进入的门的数量以及门的编号
n = int(input())
doors = list(map(int, input().split()))

# 读取所有门的编号的字符串,并根据逗号进行分割
s = input().strip().split(',')

# 存储需要进入的门在字符串中的位置
positions = []
for door in doors:
    # 判断需要进入的门在所有门的编号所在的列表的位置
    pos = s.index(str(door)) + 1
    # 将这个位置存储到结果列表中
    positions.append(pos)

# 按照从左到右的顺序将结果列表进行排序
positions.sort()

# 将结果列表中的元素用逗号进行分隔,得到最终的输出结果
result = ','.join(map(str, positions))
print(result)

以上代码片段按照 markdown 格式输出。