- [Leetcode 3016. Minimum Number of Pushes to Type Word II](#Leetcode 3016. Minimum Number of Pushes to Type Word II)
- [1. 解题思路](#1. 解题思路)
- [2. 代码实现](#2. 代码实现)
1. 解题思路
这道题的话思路其实还是蛮简单的,显然我们的目的是要令对给定的word在键盘上敲击的次数最小。
因此,我们只需要对单词当中按照字符的频次进行倒序排列,然后出现频次越高的字母就安排尽量靠前的位置即可。
2. 代码实现
给出python代码实现如下:
python
class Solution:
def minimumPushes(self, word: str) -> int:
cnt = Counter(word)
cnt = sorted(cnt.items(), key=lambda x: x[1], reverse=True)
ans = 0
for i, (k, v) in enumerate(cnt):
ans += v * (i // 8 + 1)
return ans
提交代码评测得到:耗时137ms,占用内存17.6MB。