某种聊天工具,每个好友的id都是唯一的,当用户接收到信息后,如果会话窗口之前没有与该好友的聊天信息,则在通信列表里,会将新接收的消息的好友id置顶,如果会话窗口中已有与该好友的聊天信息,则将该好友的id移动到通讯列表的顶端。请根据要求实现该功能。 输入:第一行为整数N,代表有N组测试数据,接下来的N组测试中,第一行为整数T,代表有T条通讯,第二行有T个整数,按时间先后顺序表示接收到讯息的好友id。 输出:按照通讯列表从上到下的顺序输出好友id,每个id以空格分隔。
时间: 2024-02-11 19:09:18 浏览: 61
每个浏览器标签上的唯一会话ID
以下是一个简单的Python实现,使用一个字典来记录每个好友id最近的通信时间,并根据这个时间对好友列表进行排序:
```python
n = int(input())
for _ in range(n):
t = int(input())
ids = list(map(int, input().split()))
# 使用字典来记录每个好友id最近的通信时间
last_communication = {}
for i in range(t):
friend_id = ids[i]
last_communication[friend_id] = i
# 根据最近的通信时间对好友列表进行排序
sorted_ids = sorted(last_communication.keys(), key=lambda x: last_communication[x], reverse=True)
# 输出排序后的好友列表
print(" ".join(map(str, sorted_ids)))
```
在这个例子中,我们首先读入测试数据的数量`n`,然后对于每组测试数据,读入通信数量`t`和每个好友的id。我们使用一个字典`last_communication`来记录每个好友id最近的通信时间,然后使用`sorted`函数对字典的键(即好友id)进行排序,排序的依据是最近的通信时间,最近通信时间越晚的好友在列表中越靠上。最后,我们将排序后的好友id输出即可。
阅读全文