給一非空的單詞列表,返回前_k_個出現次數最多的單詞。
返回的答案應該是按單詞出現頻率有高到低排序。如果不同的單詞有相同出現頻率,按照字母順序排序。
import numpy as np
defresult_1
(str_list,k)
: str_list_set=np.sort(
list
(set
(str_list)))
str_list_set_number=[0
for i in
range
(len
(str_list_set))]
str_dict=
dict
(zip
(str_list_set,str_list_set_number)
)for str1 in str_list:
if str1 in str_list_set:
str_dict[str1]+=1
keys=
values=
for key,value in str_dict.items():
values_idx=np.argsort(values)
keys=np.array(keys)
values=np.array(values)
return keys[values_idx[
-k:]
],values[values_idx[
-k:]
]if __name__ ==
'__main__'
: str_list=
['i'
,'love'
,'leetcode'
,'i'
,'love'
,'coding'
] k=
2 str1,idx_list=result_1(str_list,k)
print
(str1,idx_list)
前k個高頻單詞
題目 給一非空的單詞列表,返回前 k 個出現次數最多的單詞。返回的答案應該按單詞出現頻率由高到低排序。如果不同的單詞有相同出現頻率,按字母順序排序。示例 1 輸入 i love leetcode i love coding k 2 輸出 i love 解析 i 和 love 為出現次數最多的兩個單詞...
前K個高頻單詞
解題思路 static class mycomparator implements comparator override public intcompare string o1,string o2 o1 o1 o2返回 0 o1 o2返回0 count1 count2公升序排序 count2 co...
前K個高頻單詞
題目鏈結 public static listtopkfrequent string words,int k set set hashmap.entryset list list new arraylist set collections.sort list,new comparator int c...