首页 > 试题广场 >

出现次数的TopK问题

[编程题]出现次数的TopK问题
  • 热度指数:1388 时间限制:C/C++ 2秒,其他语言4秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
给定String类型的数组strArr,再给定整数k,请严格按照排名顺序打印 出次数前k名的字符串。
[要求]
如果strArr长度为N,时间复杂度请达到


输入描述:
第一行两个整数N, k。N表示数组大小
接下来N行,每行一个字符串


输出描述:
输出K行,每行有一个字符串和一个整数。
你需要按照出现出现次数由小到大输出,若出现次数相同时字符串字典序较小的优先输出
示例1

输入

4 2
1
2
3
4

输出

1 1
2 1
示例2

输入

4 2
1
1
2
3

输出

1 2
2 1

备注:


保证输入的字符串仅含有大小写字母/数字

这道题你会答吗?花几分钟告诉大家答案吧!