题目传送门
语言:python3.9
编译工具:pycharm 社区版
输入样例:
10 3
Tom 188
Mike 170
Eva 168
Tim 160
Joe 190
Ann 168
Bob 175
Nick 186
Amy 160
John 159
输出样例:
Bob Tom Joe Nick
Ann Mike Eva
Tim Amy John
题目分析:
给出N个人的名字和身高,要求站K排队列,并且和日常拍照一样,后面的同学必须比前面高,而且最高的站中间,使得站队类似倒“V”形。
需解决的问题tips:
- 首先考虑存储信息的数据结构,应该用字典分别存储{名字:身高} 还是选择列表[[名字, 身高] ] ?
- 如果身高一样,名字不同该怎样按照要求处理?
- 怎么实现站队的特殊性?最高站中间,次高站在一边,次次高站在另一边?
测试点345错误原因:
身高一样,名字不同的情况未处理完善,大概是名字之间的比较出现了逻辑错误,在python里直接用sort方法就行
针对以上问题,接下来一步一步解决,首先是最基础的信息读取:
因博主初学python,不熟悉字典操作,故选择较简单的列表。
N, K = map(int,input().split())
p = []
# 存储输入的数据
for _ in range(N):
n,