Leetcode 3016. Minimum Number of Pushes to Type Word II

  • [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。

相关推荐
Logic1015 天前
C语言/数据结构贪心算法题解:字符串趋同——逐位统计最高频率求最小修改代价
c语言·数据结构·贪心算法·字符串·时间复杂度·频率统计·算法题
Logic10119 天前
C语言/数据结构滑动窗口题解:替换k个字符后的最长连续相同字符子串(LeetCode 424)
c语言·数据结构·字符串·滑动窗口·时间复杂度·频率统计·算法题
Espresso Macchiato9 个月前
Leetcode 3781. Maximum Score After Binary Swaps
栈·leetcode medium·leetcode3781·leetcode双周赛172
Espresso Macchiato9 个月前
Leetcode 3771. Total Score of Dungeon Runs
leetcode medium·leetcode 3771·leetocde周赛479
Espresso Macchiato9 个月前
Leetcode 3790. Smallest All-Ones Multiple
leetcode medium·leetcode 3790·leetcode周赛482
Espresso Macchiato10 个月前
Leetcode 3767. Maximize Points After Choosing K Tasks
leetcode medium·leetcode双周赛171·leetcode 3767
Espresso Macchiato10 个月前
Leetcode 3765. Complete Prime Number
leetcode medium·leetcode双周赛171·leetcode 3765
Espresso Macchiato10 个月前
Leetcode 3766. Minimum Operations to Make Binary Palindrome
leetcode medium·leetcode 3766·leetcode双周赛171
Espresso Macchiato1 年前
Leetcode 3741. Minimum Distance Between Three Equal Elements II
滑动窗口·leetcode medium·leetcode 3741·leetcode周赛475
Espresso Macchiato1 年前
Leetcode 3702. Longest Subsequence With Non-Zero Bitwise XOR
leetcode medium·异或操作·leetcode 3702·leetcode周赛470