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

news/2025/2/1 4:13:02 标签: 算法, 数据结构, java

参考题解: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本身。
java">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.niftyadmin.cn/n/5839004.html

相关文章

Spring04 - filter和interceptor

filter和interceptor 文章目录 filter和interceptor一&#xff1a;舶来品和原住民1&#xff1a;Filter&#xff1a;1.1&#xff1a;基本概念1.2&#xff1a;Spring Boot中的使用 2&#xff1a;Interceptor&#xff1a;2.1&#xff1a;基本概念2.2&#xff1a;Spring Boot中的使…

AI 模型优化与性能调优

在 AI 应用中&#xff0c;模型的性能是一个非常重要的考量因素。为了确保高效的响应时间和资源利用率&#xff0c;我们需要对 AI 模型进行性能优化和调优。本篇博客将介绍如何对 AI 模型进行性能调优&#xff0c;包括&#xff1a; 模型大小优化推理速度提升内存管理并发与负载…

Autogen_core: Model Context

目录 示例代码代码解释另一个例子 示例代码 from dataclasses import dataclassfrom autogen_core import AgentId, MessageContext, RoutedAgent, SingleThreadedAgentRuntime, message_handler from autogen_core.model_context import BufferedChatCompletionContext from …

JavaScript - Web APIs(下)

日期对象 目标&#xff1a;掌握日期对象&#xff0c;可以让网页显示日期 日期对象&#xff1a;用来表示时间的对象 作用&#xff1a;可以得到当前系统时间 学习路径&#xff1a; 实例化 日期对象方法 时间戳 实例化 目标&#xff1a;能够实例化日期对象 在代码中发…

[Java]泛型(一)泛型类

1. 什么是泛型类&#xff1f; 泛型类是指类中使用了占位符类型&#xff08;类型参数&#xff09;的类。通过使用泛型类&#xff0c;你可以编写可以处理多种数据类型的代码&#xff0c;而无需为每种类型编写单独的类。泛型类使得代码更具通用性和可重用性&#xff0c;同时可以保…

基于 Redis GEO 实现条件分页查询用户附近的场馆列表

&#x1f3af; 本文档详细介绍了如何使用Redis GEO模块实现场馆位置的存储与查询&#xff0c;以支持“附近场馆”搜索功能。首先&#xff0c;通过微信小程序获取用户当前位置&#xff0c;并将该位置信息与场馆的经纬度数据一同存储至Redis中。利用Redis GEO高效的地理空间索引能…

goframe 多语言国际化解决方案

项目背景 本项目采用基于JSON配置的多语言国际化&#xff08;i18n&#xff09;解决方案&#xff0c;支持多种语言的无缝切换和本地化。 目录结构 manifest/ └── i18n/├── zh.json # 简体中文├── zh-tw.json # 繁体中文├── en.json # 英语├…

Vue3.0教程003:setup语法糖

文章目录 3.1 OptionsAPI与CompositionAPIOptions API的弊端Composition API的优势 3.2 拉开序幕的setup3.3 setup语法糖 3.1 OptionsAPI与CompositionAPI vue2的API设计是Options风格的vue3的API设计是Composition&#xff08;组合&#xff09;风格的 Options API的弊端 Opt…