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

Golang | Leetcode Golang题解之第395题至少有K个重复字符的最长子串

题目:

题解:

func longestSubstring(s string, k int) (ans int) {
    for t := 1; t <= 26; t++ {
        cnt := [26]int{}
        total := 0
        lessK := 0
        l := 0
        for r, ch := range s {
            ch -= 'a'
            if cnt[ch] == 0 {
                total++
                lessK++
            }
            cnt[ch]++
            if cnt[ch] == k {
                lessK--
            }

            for total > t {
                ch := s[l] - 'a'
                if cnt[ch] == k {
                    lessK++
                }
                cnt[ch]--
                if cnt[ch] == 0 {
                    total--
                    lessK--
                }
                l++
            }
            if lessK == 0 {
                ans = max(ans, r-l+1)
            }
        }
    }
    return ans
}

func max(a, b int) int {
    if a > b {
        return a
    }
    return b
}

http://www.kler.cn/news/302488.html

相关文章:

  • IPC$漏洞多位密码爆破方法
  • 揭开Facebook AI的神秘面纱:如何利用人工智能提升社交体验
  • Java笔试面试题AI答之单元测试JUnit(4)
  • 亚信安全出席第五届国际反病毒大会 探究AI现代网络勒索治理
  • SprinBoot+Vue爱老助老服务平台的设计与实现
  • JAVAEE初阶第六节——网络编程套接字
  • 通信工程学习:什么是SLF签约数据定位功能
  • 携手科大讯飞丨云衔科技为企业提供全栈AI技术解决方案
  • yolov8学习笔记
  • 深入理解Java中的Lambda表达式
  • 如何利用 Smarter Balanced 塑造教育领域的 AI 治理
  • Python-pptx:如何在幻灯片中轻松插入与填充表格
  • 守护应用边界:通过反射API实现安全的输入输出过滤
  • 在Vue中,字符串转换为整数类型
  • [Xpath] Xpath基础知识
  • 【x265】码率控制模块的简单分析—块级码控工具(AQ和cuTree)
  • k8s环境搭建(续)
  • HarmonyOS开发实战( Beta5.0)使用ArkUI的FrameNode扩展实现动态布局类框架详解
  • 【VuePress 个人博客搭建】
  • 一文彻底搞懂数字孪生、仿真与虚拟调试
  • 基于SpringBoot的古城墙景区管理系统
  • OGG几何内核算法研究-大型装配模型快速载入研究
  • LVS--负载均衡调度器
  • Vue Router 中,meta 对象。
  • QGIS 如何连接空间库,并实时编辑空间表?编辑后库表如何刷新,保证是最新数据?
  • 【动态规划】(一)动态规划理论及基础题目
  • JavaScript web API part2
  • 网站如何防范BOT流量?
  • Python计算机视觉 第8章-图像内容分类
  • Vue3中Pinia存储和修改数据应用实践