LeetCode——3137. K周期字符串需要的最少操作次数

通过万岁!!!

  • 题目:给你一个字符串word还有一个数字k,然后让你将字符串变成k周期的字符串。k周期就是让字符串可以拆分成word/k个字符串,然后这个写字符串都相同。然后问你最少要变化多少次。
  • 思路:其实我们只需要找出word中拆分成k分以后,哪个字符串站的最多。我们就让这个字符串是一个周期就好了。所以只需要以k的步长遍历字符串,然后统计字符串中出现次数最多的是多少次,记为max。那么最后要变化的次数就是word/k-max就是最后结果。
  • 思路:哈希

java代码

java 复制代码
class Solution {
    public int minimumOperationsToMakeKPeriodic(String word, int k) {
        Map<String, Integer> countMap = new HashMap<>();
        int max = 0;
        for (int i = 0; i < word.length() / k; i++) {
            String wordK = word.substring(i * k, (i + 1) * k);
            Integer count = countMap.getOrDefault(wordK, 0) + 1;
            countMap.put(wordK, count);
            max = Math.max(max, count);
        }
        return word.length() / k - max;
    }
}
  • 总结:题目还是比较简单的,就是利用哈希找到最大的值就好了。
相关推荐
2501_94180593几秒前
面向高可用微服务体系的状态管理演进与多语言实现经验融合实践分享文章
java·大数据·分布式
副露のmagic2 分钟前
更弱智的算法学习 day18
学习·算法
byzh_rc3 分钟前
[数字信号处理-入门] 采样定理
算法·matlab·信号处理
想进个大厂3 分钟前
代码随想录day6哈希表
算法·leetcode·散列表
Knight_AL7 分钟前
使用 Nginx 为内网 Java 服务实现 HTTPS
java·nginx·https
提笔忘字的帝国8 分钟前
【2026版】macOS 使用 Homebrew 快速安装 Java 21 教程
java·开发语言·macos
圣保罗的大教堂14 分钟前
leetcode 1339. 分裂二叉树的最大乘积 中等
leetcode
抹香鲸之海14 分钟前
Easyexcel 多级横向合并表头
java·开发语言·windows
烟沙九洲17 分钟前
JVM 堆内存分代
java·jvm
less is more_093017 分钟前
文献学习——计及分时电价的电缆配电网多时段二阶段有功与无功协调快速鲁棒优化调度方法
笔记·学习·算法