151. 【应-22-2·难】UA 分类 top-k

中等 Python 2s 256MB
通过 0/0

📋 题目描述
给定 N 条 UA 字符串,按下面的"优先级链"把每条 UA 归入唯一一类: 1. 含 `Android` -> `Android`; 2. 否则含 `iPhone` -> `iPhone`; 3. 否则含 `iPad` -> `iPad`; 4. 否则含 `Windows` -> `Windows`; 5. 否则含 `Macintosh` 或 `Mac OS` -> `Mac`; 6. 否则含 `Linux` -> `Linux`; 7. 其它 -> `Other`。 统计每个类别的出现次数,按"**计数降序**;同计数按**类别名 ASCII 升序**"排序,输出前 k 行;类别少于 k 个则全部输出。每行格式 `类别 计数`,中间一个空格。
📥 输入描述
第一行两个整数 N k(1<=N<=200, 1<=k<=10)。 接下来 N 行各一条 UA 字符串。
📤 输出描述
最多 k 行,每行 `类别 计数`。
输入样例
5
3
Mozilla/5.0 (Linux; Android 11)
Mozilla/5.0 (iPhone)
Mozilla/5.0 (Windows NT 10.0)
Mozilla/5.0 (Linux; Android 12)
Mozilla/5.0 (Macintosh; Intel Mac OS X)
输出样例
Android 2
Mac 1
Windows 1
提示:先按链表顺序判类(Android 优先于 Linux,因为 Android 字符串里也含 Linux); 用 collections.Counter,再 `sorted(items, key=lambda x: (-x[1], x[0]))`。

登录后提交代码

讨论区 0
登录后参与讨论

还没有讨论,来发表第一条吧!