有一堆单词,里面可能有大写字母或者小写字母。请你先将单词全部转为小写,找出小写单词里面出现最多的一个单词视为关键词,如果这样的单词有多个,那么找出其中字典序最小的一个。 两个字符串,大小关系取决于两个字符串从左到右第一个不同字符的 ASCII 值的大小关系。比如a小于b,ah1x小于ahb,acb小于b。
输入的第一行输入这堆单词的个数 n ,每行一个长度不超过 10 的字符串,代表一个单词。 一堆单词总共不会超过 10 ^ 4 个单词。
一行输出一个字符串以及一个正整数,代表提取出的关键词,以及关键词出现的次数。
10 Nice to meet you I can help you thank you
you 3
3 b c ad
ad 1
4 B b c ad
b 2
考点:哈希
数据规模 n ≤ 10 | 限制 1 秒 / 64MB | 标准输入输出
参考方向:哈希
用哈希表把「查找/计数」的开销降到 O(1) 均摊。
思路框架(哈希 通法 · 非本题专属)
实现要点:Python 用 dict / collections.Counter / defaultdict;C++ 用 unordered_map。
复杂度:时间 O(n) 均摊 | 空间 O(n)
该范式的通法易错点
对照本题
本题在源数据中没有官方考点标签,方向由题面特征推断,仅供参考。
样例 1:输入 10 / Nice / to / meet / you / I / can / help / you / thank / you → 输出 you 3
you最多出现了3次
样例 2:输入 3 / b / c / ad → 输出 ad 1
都出现了1次,ad的字典序最小
样例 3:输入 4 / B / b / c / ad → 输出 b 2
先将B转为b,然后b出现2次,最多
解析由校招宝本地引擎整理(依据源站考点标签 / 人工判题标注 / 题面规模信号),非官方题解,仅供思路参考。
本题来源:2024年秋招-贝壳找房-前端工程师-第一批笔试;2024年秋招-贝壳找房-测试开发工程师-第一批笔试。