当前位置: 首页 > 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/a/302488.html

相关文章:

  • 基于GPU器件行为的创新分布式功能安全机制为智能驾驶保驾护航
  • 数据结构--数组
  • 入侵排查之Linux
  • 删库跑路,启动!
  • 百度搜索AI探索版多线程批量生成TXT原创文章软件-可生成3种类型文章
  • 树莓派(Raspberry Pi)Pico 2 C_C++开发环境配置(Docker+SDK)
  • 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 个人博客搭建】
  • 一文彻底搞懂数字孪生、仿真与虚拟调试