Python3题解,本人不是程序员,算是初学者,来刷一刷题,提供一下新手向的思路,比较好理解
因为各种函数和数据结构不熟练,因此采用的是笨办法,甚至没有用到题目关键词里的“字典”和“哈希”
import sys list1 = sys.stdin.readlines() #读取输入数据 counter = int(list1[0]) list2 = [] for i in range(counter+1):# 去掉换行符 list1[i] = list1[i][:-1] for i in range(1,counter+1):# 因为读取到的是str,转换成元素为整形的list输入到一个新列表里,这样一来新列表为嵌套列表,是个矩阵 list2.append(list(map(int,list1[i].split()))) def takeFirst(elem): return elem[0] list2.sort(key = takeFirst)# 在这里把新列表排一下序,方便按顺序输出 # 开始遍历,每个列表元素中,第一个元素就是键,第二个就是值 # 遇到键相同值不同的就合并,并删除后一项 i = 0 while i < len(list2)-1: #print(len(list2)) j = i+1 while j < len(list2): if list2[i][0] == list2[j][0] : list2[i][-1] = int(list2[i][-1])+int(list2[j][-1]) #list2[j][-1] = str(list2[j][-1]) del list2[j] else: j += 1 i += 1 # 因为排过序,所以直接输出即可 for i in range(len(list2)): print(list2[i][0],list2[i][1])