利用字典,zip函数,再排序,则这两个题投机取消的很简单。
347 Top K Frequent Elements
class Solution(object):
def topKFrequent(self, nums, k):
d={}
for i in nums:
if i in d:
d[i]+=1
else:
d[i]=0
f=sorted(zip(d.values(),d.keys()),reverse=True)
return [f[j][1] for j in range(k)]
451 Sort Characters By Frequency
class Solution(object):
def frequencySort(self, s):
"""
:type s: str
:rtype: str
"""
d={}
for i in s:
if i in d:d[i]+=1
else:d[i]=1
f=sorted(zip(d.values(),d.keys()),reverse=True)
print(f)
ans=''
for j in f:
ans+=j[1]*j[0]
return ans