当前位置: 首页 > article >正文

395. 至少有K个重复字符的最长子串

参考题解:https://leetcode.cn/problems/longest-substring-with-at-least-k-repeating-characters/solutions/623991/jie-ben-ti-bang-zhu-da-jia-li-jie-di-gui-obla

  • 递归含义:返回字符串s中至少有k个重复字符的最长子串
  • 递归终止条件:当s的长度小于k,终止
  • 递归条件:当s中的某个字符c的数量小于k,则包含c的子串必然不符合条件,因此根据字符c对字符串s进行切分,得到若干个字符串t,对t递归进行上述检查。
  • 递归条件外:指没进入递归条件,即s中所有字符的数量都大于等于k,因此符合条件的最长子串就是s本身。
class Solution {
    public int longestSubstring(String s, int k) {
        int n = s.length();
        if (n < k) return 0;
        Map<Character, Integer> counter = new HashMap<>();
        for (int i = 0; i < n; ++i) {
            counter.put(s.charAt(i), counter.getOrDefault(s.charAt(i), 0) + 1);
        }
        for (char c : counter.keySet()) {
            if (counter.get(c) < k) {
                int ans = 0;
                for (String t : s.split(String.valueOf(c))) {
                    ans = Math.max(ans, longestSubstring(t, k));
                }
                return ans;
            }
        }
        return n;
    }
}

http://www.kler.cn/a/526061.html

相关文章:

  • < OS 有关> BaiduPCS-Go 程序的 菜单脚本 Script: BaiduPCS-Go.Menu.sh (bdgo.sh)
  • JavaScript
  • 【每日一A】2015NOIP真题 (二分+贪心) python
  • 分布式微服务系统架构第88集:kafka集群
  • 数字化转型-工具变量(2024.1更新)-社科数据
  • 神经网络|(七)概率论基础知识-贝叶斯公式
  • continuous batching、chunked-prefill相关概念
  • springboot3 集成 knife4j(接口文档)
  • 【前端学习路线】前端工程化 详细知识点学习路径(附学习资源)
  • 【 CVE-2025-21298】 通过ghidriff查看完整补丁差异
  • 使用SearchCursor检索要素类中的要素
  • 【深度分析】DeepSeek大模型技术解析:从架构到应用的全面探索
  • Go语言编程基础
  • MySQL基本架构SQL语句在数据库框架中的执行流程数据库的三范式
  • Pyside/Pyqt中QWebEngineView和QWebEnginePage的区别
  • 5.桥模式(Bridge)
  • 《大语言模型》综述学习笔记
  • lanqiaoOJ 2097:青蛙过河 ← 二分+前缀和+贪心
  • Vmware虚拟机内存扩展与管理
  • qt内部的特殊技巧【QT】
  • Python 梯度下降法(二):RMSProp Optimize
  • 2022 年 6 月大学英语四级考试真题(第 2 套)——纯享题目版
  • Big Bird:适用于更长序列的Transformer模型
  • Android 启动流程
  • 新版231普通阿里滑块 自动化和逆向实现 分析
  • 【25考研】考研366是否能进北航计算机复试?该怎么准备?