题目内容
某 web 服务器会持续接收文本字符流。
已知文本字符流仅由大写英文字母(A−Z )、小写英文字母( a−z )、数字( 0−9 )三 种组成。
为了持续观测其中的热点字符需要每隔一段字符长度就进行 一次增量统计(假设增量统计单位为 10 ,则每接收 10 个,就要对字符串的热点字符进行统计一次)。
每次的统计结果按次数从高到低排列,对于出现次数相同字符则按 ASCII 码值从大到小排列。
输入描述
每个输入数据为行,数据之间以 1 个空格间隔。
第 1 个数字N表示依次统计出现最多的 N 个字符。
第 2 个数字M表示每 M 个字符进行增量统计。
第 3 个是需要统计的字符串。
输出描述
输出统计的结果的字符串。
示例1:
输入
3 10 aaagggbcce9999333213gggggaaaaa
输出
gac93gga9
样例解释
第一次统计字符串下标范围为[0,9] 统计 agggbcce 这 10 个字符。
发现a 、 g 字符各出现 33 次, c 字符出现 2 次、 b 和 e 字符各出现 1 次。
出现次数最多的前 3 个字符是 agc ,因为 a 和 g 出现次数都是 3 但是 ASCII 码值g>a ,所以得到 gac
第二次统计字符串下标范围为 [0,19] ,统计
该博客介绍了一道华为在线开发者测试(OD)的面试题,涉及字符流中热点字符的统计方法。文章详细说明了如何处理包含字母和数字的文本流,每隔一定字符数进行增量统计,并根据出现次数和ASCII码值排序输出前N个热点字符。通过示例解释了统计过程和结果,提供了解题思路。
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



