把字母出现的次数统计出来,从多到少排序,出现次数多的字母尽可能排在第一轮就可以按到,也就是press1次,以此类推到press 2次,press 3次。
class Solution:
def minimumKeypresses(self, s: str) -> int:
Counter = collections.Counter(s)
newCounter = []
for c,num in Counter.items():
newCounter.append((c,num))
newCounter.sort(key = lambda x:x[1], reverse = True)
flag = 0
ans = 0
for c,num in newCounter:
flag += 1
if flag <=9:
ans += num * 1
elif flag >18:
ans += num *3
else:
ans += num *2
return ans