社区常称:失灵的键盘
通过率 37% · 提交 118 · 通过 44
小慕正在调试一个故障键盘,其中有2个按键失灵。当按下这些按键时,屏幕上会连续输出其他字符两次。具体情况如下: - 按下j键一次,屏幕上显示uu(两个连续的u);按下b键一次,屏幕上显示tt(两个连续的t) - u键和t键是正常的,按下u键一次时,屏幕只会显示一次u;按下t键一次时,屏幕只会显示一次t - 规定屏幕上连续显示两个t一定是因为按了一次b键,而不是两次t键;同时假设按了t键之后不会紧接着按b,即tttt会被解释为两个b,而不是tbt;u和j的情况同理 - 其他按键均正常工作 为了方便排查,小慕拿到一串屏幕上实际输出的字符串,需要按照按键次数从高到低排序输出。如果次数相同,则按键对应的原字符按升序排列(失灵按键以它们原本对应的字符为准)。只统计按键次数大于0的按键。 此外,小慕在输出时还需要进行一次字符映射转换,规则如下: - 按键0-9,直接以数字0-9输出 - 按键a-z,以10-35输出
这类题属于算法机考高频题型中「100分 / 哈希表」方向的高频题型,通常考察对「100分 / 哈希表」的建模能力与边界条件处理。掌握本题的解题思路后,可举一反三应对同类真题方向,稳步提升机考通过率。
提示:带虚线的词点一下有通俗解释。
一个字符串s,只包含小写字母和数字,s的长度不超过500(s中不包含b和j字母)。
{按键转义后的值,按键次数}构成结果对,所有按键的结果对按照按键次数降序排列(输出实际是二维数组,第二维固定长度2)。
示例 1
输入示例
t
输出示例
[[29, 1]]
单个 t 是按了 t 键,转义值 t=29
示例 2
输入示例
uuuua
输出示例
[[19, 2], [10, 1]]
处理过程:
时间限制 1000 ms · 内存限制 128 MB
本平台为独立第三方培训机构,与华为技术有限公司无任何关联;课程的服务内容与权益以购买协议为准,学习效果因个人情况而异。「华为 OD」「华为可信」等仅为对岗位与考试方向的客观描述,相关商标归各自权利人所有。
登录后可查看你在本题的历史提交,以及每次的各用例通过情况。
© 2026 广州慕课网络科技有限公司 · 吴师兄学算法官网 版权所有