描述
现在有a,b两个链表,每个链表中的结点包括学号,成绩。要求把两个链表合并,按学号升序排列。
输入
单组测试数据。
输入共三行。
第一行:输入两个正整数n和m(0< n ,m <= 100),表示链表a有n条记录,链表b有m条记录。
第二行:输入a链表的n条记录,每条记录格式为id:score
,分别代表学生学号和成绩,每条记录用-->
隔开。
第三行:输入b链表的m条记录。格式和a链表的一样。
输出
输出共一行,输出两个链表合并后并按学生id升序排列的链表。
格式和输入的链表格式一样。
输入样例 1
3 2
4:80-->3:77-->2:98
1:99-->5:89
输出样例 1
1:99-->2:98-->3:77-->4:80-->5:89
来源
江西中医药大学OJ http://172.17.4.116
Python
import operator
class Node:
def __init__(self, pid, score):
self.pid = pid
self.score = score
n, m = map(int, input().split())
a = input()
b = input()
nodes = []
arr = a.split('-->')
brr = b.split('-->')
for i in arr:
pid, score = i[0], i[2:]
node = Node(pid, score)
nodes.append(node)
for i in brr:
pid, score = i[0], i[2:]
node = Node(pid, score)
nodes.append(node)
cmp = operator.attrgetter('pid')
nodes.sort(key=cmp)
for i in nodes[:-1]:
print(i.pid + ':' + i.score + '-->', end='')
print(nodes[-1].pid + ':' + nodes[-1].score)