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