题解 | #字符串出现次数的TopK问题#

字符串出现次数的TopK问题

https://www.nowcoder.com/practice/fd711bdfa0e840b381d7e1b82183b3ee

class Solution:
    def topKstrings(self , strings: List[str], k: int) -> List[List[str]]:
        # write code here
        from functools import cmp_to_key
        def compare(x,y):
            if x[1]>y[1]:
                return -1
            elif x[1]==y[1]:
                if x[0]<y[0]:
                    return -1
                else:
                    return 1
            else:
                return 1
        dic = {}
        for i in strings:
            if i in dic:
                dic[i] += 1
            else:
                dic[i] = 1
        li = list(dic.items())
        li.sort(key = cmp_to_key(compare))
        res = li[:k]
        for i in range(len(res)):
            res[i] = [res[i][0],res[i][1]]
        return res


全部评论

相关推荐

字节 飞书绩效团队 (n+2) * 15 + 1k * 12 + 1w
点赞 评论 收藏
分享
一颗宏心:华为HR晚上过了十二点后还给我法消息。
点赞 评论 收藏
分享
Noob1024:一笔传三代,人走笔还在
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务