栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

pat 乙类 1095 python

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

pat 乙类 1095 python

注意一、要求输出类型为1的指令时 查询为空则输出NA。即if len(p) 0:print( NA ) 只用if find[1] not in level:print( NA )只能判断指令是否是 A 、 B 、 T 不能用来判断是否是空集 测试点1、2会报错。类型为2或3时 可以使用if find[1] not in room_num:print( NA )或if find[1] not in date:print( NA ) 因为在分类时已经排除没有的情况。类型1也可以在开始建立空字典 排除没有的情况。

注意二、使用sort()方法或sorted()函数来排序时 降序符号 - 不能对字符串使用 只能对整型使用

偶尔通过。创建包含 A 、 B 、 T 的字典

n, m map(int, input().split())
level { A : [], B : [], T : []}
room_num {}
date {}
for i in range(n):
 num, score input().split()
 score int(score)
 if num[0] in level:
 level[num[0]].append([num, score])
 room num[1:4]
 if room in room_num:
 room_num[room][0] 1
 room_num[room][1] score
 else:
 room_num[room] [1, score]
 t num[4:10]
 if t not in date:
 date[t] {}
 if room not in date[t]:
 date[t][room] 1
 else:
 date[t][room] 1
for j in range(m):
 find input().split()
 print( Case %d: % (j 1), find[0], find[1])
 if find[0] 1 :
 if find[1] in level: % 判断指令是否是A、B、T
 p level[find[1]]
 if len(p) ! 0: % 判断是否为空集
 p.sort(key lambda x:(-x[1], x[0])) % - 只能对整型使用
 for i in p:
 print(*i, sep )
 else:
 print( NA )
 else:
 print( NA )
 elif find[0] 2 :
 if find[1] not in room_num:
 print( NA )
 else:
 print(*room_num[find[1]], sep )
 elif find[0] 3 :
 if find[1] in date:
 s date[find[1]]
 s sorted(s.items(), key lambda x: (-x[1], x[0]))
 for i in s:
 print(*i, sep )
 else:
 print( NA )
 else:
 print( NA )

偶尔通过。创建三个空字典

n, m map(int, input().split())
level {}
room_num {}
date {}
for i in range(n):
 num, score input().split()
 score int(score)
 if num[0] in level:
 level[num[0]].append([num, score])
 else:
 level[num[0]] []
 level[num[0]].append([num, score])
 room num[1:4]
 if room in room_num:
 room_num[room][0] 1
 room_num[room][1] score
 else:
 room_num[room] [1, score]
 t num[4:10]
 if t not in date:
 date[t] {}
 if room not in date[t]:
 date[t][room] 1
 else:
 date[t][room] 1
for j in range(m):
 find input().split()
 print( Case %d: % (j 1), find[0], find[1])
 if find[0] 1 :
 if find[1] in level:
 p level[find[1]]
 p.sort(key lambda x:(-x[1], x[0]))
 for i in p:
 print(*i, sep )
 else:
 print( NA )
 elif find[0] 2 :
 if find[1] not in room_num:
 print( NA )
 else:
 print(*room_num[find[1]], sep )
 elif find[0] 3 :
 if find[1] in date:
 s date[find[1]]
 s sorted(s.items(), key lambda x: (-x[1], x[0]))
 for i in s:
 print(*i, sep )
 else:
 print( NA )
 else:
 print( NA )

测试点3、4超时

n, m map(int, input().split())
level { A : {}, B : {}, T : {}}
room_num {}
date {}
for i in range(n):
 num, score input().split()
 if num[0] in level:
 level[num[0]][num] score
 room num[1:4]
 if num[1:4] in room_num:
 room_num[num[1:4]][0] 1
 room_num[num[1:4]][1] int(score)
 else:
 room_num[num[1:4]] [1, int(score)]
 t num[4:10]
 if t not in date:
 date[t] {}
 if room not in date[t]:
 date[t][room] 1
 else:
 date[t][room] 1
for j in range(m):
 find input().split()
 print( Case %d: % (j 1), find[0], find[1])
 if find[0] 1 :
 if find[1] in level:
 p level[find[1]]
 if len(p) ! 0:
 p sorted(p.items(),key lambda x:(-int(x[1]), x[0]))
 for i in p:
 print(*i, sep )
 else:
 print( NA )
 else:
 print( NA )
 elif find[0] 2 :
 if find[1] not in room_num:
 print( NA )
 else:
 print(*room_num[find[1]], sep )
 elif find[0] 3 :
 if find[1] in date:
 s date[find[1]]
 s sorted(s.items(), key lambda x: (-x[1], x[0]))
 for i in s:
 print(*i, sep )
 else:
 print( NA )
 else:
 print( NA )

测试点1 2错误 3、4超时

n, m map(int, input().split())
stu {}
for i in range(n):
 num, score input().split()
 stu[num] score
for j in range(m):
 find input().split()
 if find[0] 1 and find[1] in [ A , B , T ]:
 result []
 for k in stu:
 if find[1] k[0]:
 result.append([k, stu[k]])
 result.sort(key lambda x: (-int(x[1]), x[0]))
 print( Case %d: % (j 1), find[0], find[1])
 for i in result:
 print(*i, sep )
 elif find[0] 2 :
 count 0
 for k in stu:
 if find[1] k[1:4]:
 s int(stu[k])
 count 1
 print( Case %d: % (j 1), find[0], find[1])
 if count 0:
 print( NA )
 else:
 print(count, s)
 elif find[0] 3 :
 result {}
 for k in stu:
 if find[1] k[4:10]:
 if k[1:4] in result:
 result[k[1:4]] 1
 else:
 result[k[1:4]] 1
 result sorted(result.items(), key lambda x: (-x[1], x[0]))
 print( Case %d: % (j 1), find[0], find[1])
 if len(result) 0:
 print( NA )
 else:
 for i in result:
 print(*i, sep )
 else:
 rint( Case %d: % (j 1), find[0], find[1])
 print( NA )

测试点1、2错误 3、4超时

n, m map(int, input().split())
stu {}
level_A []
level_B []
level_T []
room_num {}
for i in range(n):
 num, score input().split()
 stu[num] score
 if num[0] A :
 level_A.append([num,score])
 elif num[0] B :
 level_B.append([num,score])
 elif num[0] T :
 level_T.append([num,score])
 if num[1:4] in room_num:
 room_num[num[1:4]][0] 1
 room_num[num[1:4]][1] int(score)
 else:
 room_num[num[1:4]] [1,int(score)]
for j in range(m):
 find input().split()
 print( Case %d: % (j 1), find[0], find[1])
 if find[0] 1 :
 if find[1] A :
 level_A.sort(key lambda x:(-int(x[1]),x[0]))
 for i in level_A:
 print(*i, sep )
 elif find[1] B :
 level_B.sort(key lambda x: (-int(x[1]), x[0]))
 for i in level_B:
 print(*i, sep )
 elif find[1] T :
 level_T.sort(key lambda x: (-int(x[1]), x[0]))
 for i in level_T:
 print(*i, sep )
 else:
 print( NA )
 elif find[0] 2 :
 if find[1] not in room_num:
 print( NA )
 else:
 print(*room_num[find[1]],sep )
 elif find[0] 3 :
 result {}
 for k in stu:
 if find[1] k[4:10]:
 if k[1:4] in result:
 result[k[1:4]] 1
 else:
 result[k[1:4]] 1
 result sorted(result.items(), key lambda x: (-x[1], x[0]))
 if len(result) 0:
 print( NA )
 else:
 for i in result:
 print(*i, sep )
 else:
 print( NA )
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/267135.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号