NC97 字符串出现次数的TopK问题

编程入门 行业动态 更新时间:2024-10-24 20:17:15

NC97 <a href=https://www.elefans.com/category/jswz/34/1771434.html style=字符串出现次数的TopK问题"/>

NC97 字符串出现次数的TopK问题

描述

给定一个字符串数组,再给定整数 k ,请返回出现次数前k名的字符串和对应的次数。

返回的答案应该按字符串出现频率由高到低排序。如果不同的字符串有相同出现频率,按字典序排序。

对于两个字符串,大小关系取决于两个字符串从左到右第一个不同字符的 ASCII 值的大小关系。

比如"ah1x"小于"ahb","231"<”32“

字符仅包含数字和字母

数据范围:字符串数满足 1000000≤n≤100000,每个字符串长度 100≤n≤10, 25000≤k≤2500

要求:空间复杂度 O(n),时间复杂度O(nlogk)

示例1

输入:

["a","b","c","b"],2

返回值:

[["b","2"],["a","1"]]

说明:

"b"出现了2次,记["b","2"],"a"与"c"各出现1次,但是a字典序在c前面,记["a","1"],最后返回[["b","2"],["a","1"]]

示例2

输入:

["123","123","231","32"],2

返回值:

[["123","2"],["231","1"]]

说明:

 "123"出现了2次,记["123","2"],"231"与"32"各出现1次,但是"231"字典序在"32"前面,记["231","1"],最后返回[["123","2"],["231","1"]]   

示例3

输入:

["abcd","abcd","abcd","pwb2","abcd","pwb2","p12"],3

返回值:

[["abcd","4"],["pwb2","2"],["p12","1"]]

备注:

1≤N≤105

Python代码:

#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
# return topK string
# @param strings string字符串一维数组 strings
# @param k int整型 the k
# @return string字符串二维数组
#from collections import Counterclass Solution:def topKstrings(self , strings: List[str], k: int) -> List[List[str]]:# write code herecounter = Counter(strings)return sorted(counter.items(), key=lambda x: (-x[1], x[0]))[:k]

更多推荐

NC97 字符串出现次数的TopK问题

本文发布于:2024-02-27 06:10:28,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1705480.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:字符串   次数   TopK

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!