牛课力扣---NC97 字符串出现次数的TopK问题

牛课力扣---NC97 字符串出现次数的TopK问题_第1张图片
牛课力扣---NC97 字符串出现次数的TopK问题_第2张图片
牛课力扣---NC97 字符串出现次数的TopK问题_第3张图片

#
# return topK string
# @param strings string字符串一维数组 strings
# @param k int整型 the k
# @return string字符串二维数组
from collections import Counter
class Solution:
    def topKstrings(self , strings , k ):
        # write code here
 #             #同方法2: 
        result = Counter(strings)
        L = sorted(result.items(),key = lambda kv:(-kv[1],kv[0]))
        L = L[:k]
        return L
        
 
        
#        #方法2:
#         strings.sort()  
#         return Counter(strings).most_common(k)
# 利用collections模块中counter类的函数most_common(),most_commom()函数不传参数值时,
# 用sort()函数排序,排序的根据是以第2个元素数值进行排序的,返回的是从大到小的顺序的所有结果,
# 如果有参数n,调用了 heapq模块中的 nlargest 函数返回的前n个的元素结果。
        
#         #方法1:
# #     1.先计数并存转成list格式
# #     2.先按照 出现数字降序 再按照字符升序排序
#         res = {}
#         for i in strings:
#             if i not in res.keys():
#                 res[i] = 1
#             else:
#                 res[i] +=1
#         resList = []
#         for i in res.keys():
#             resList.append([i,res[i]])
#         resList.sort(key=lambda i : (-i[1],i[0]))
#         return resList[:k]
# # sorted(d.items(), key=lambda x: x[1]) 中 d.items() 为待排序的对象;
# # key=lambda x: x[1] 为对前面的对象中的第二维数据(即value)的值进行排序。 
# # key=lambda 变量:变量[维数] 。维数可以按照自己的需要进行设置。

        
        
        
        


你可能感兴趣的:(牛课-leetcode,python)