回顾:排行榜
本课属于 Coddy Swift 学习旅程的“逻辑与流程”单元。第 32 课,共 56 课。
挑战
中等你正在制作排行榜。读取一行输入:以逗号分隔的 name:score 条目列表。某些条目的分数不是整数,应跳过这些条目(使用 compactMap)。
按分数降序打印排名前三的玩家,每行一位,格式如下:
<rank>. <name> - <score>排名从 1 开始。分数相同时,按姓名字母顺序排列。如果有效条目少于 3 个,就全部打印。
排行榜之后,打印 Avg: <n>,其中包含所有有效分数的整数平均值(向零截断,不保留小数)。没有有效条目时,打印 Avg: 0。
对于输入 alice:90,bob:bad,cara:85,dan:90,eve:70,fin:99,输出为:
1. fin - 99
2. alice - 90
3. dan - 90
Avg: 86亲手试试
let entries = readLine()!.components(separatedBy: ",")
// TODO:用 compactMap 转换为 (name, score);按 score 降序排序,score 相同时按 name 排序;
// 输出前 3 名;然后输出所有有效 score 的平均值
逻辑与流程中的所有课
自己练习: Swift 在线编辑器