至少有k个重复字符的最长子串(LeetCode)

题目

给你一个字符串 s 和一个整数 k ,请你找出 s 中的最长子串, 要求该子串中的每一字符出现次数都不少于 k 。返回这一子串的长度。

如果不存在这样的子字符串,则返回 0。

解题

python 复制代码
def longestSubstring(s, k):
    # 如果字符串长度为0或者字符串长度小于k,返回0
    if len(s) == 0 or len(s) < k:
        return 0

    # 如果字符串中所有字符的出现次数都大于等于k,返回字符串的长度
    if all(s.count(char) >= k for char in set(s)):
        return len(s)

    # 否则进行分治
    for char in set(s):
        if s.count(char) < k:
            # 对字符串进行分割
            return max(longestSubstring(sub, k) for sub in s.split(char))

    return len(s)


# 示例
s = "aaabb"
k = 3
print(longestSubstring(s, k))  # 输出: 3, 因为最长子串是 "aaa"

s = "ababbc"
k = 2
print(longestSubstring(s, k))  # 输出: 5, 因为最长子串是 "ababb"
相关推荐
YaraMemo9 分钟前
数学优化问题中的三大转化:多目标转化为单目标,多变量转化为单变量,有约束转化为无约束
人工智能·算法·5g·信息与通信·信号处理
Ailan_Anjuxi13 分钟前
【附Python源码】使用minGPT训练自己的小型GPT语言模型
算法
QuZero21 分钟前
StampedLock Mechanism
java·算法
云泽80825 分钟前
二叉树高阶笔试算法题精讲(二):非递归遍历与序列构造全解析
c++·算法·面试
小O的算法实验室1 小时前
2026年ESWA,基于固定机巢的无人机输电杆塔、变电站与配电杆混合巡检任务分配与路径规划,深度解析+性能实测
算法·论文复现·智能算法·智能算法改进
sali-tec3 小时前
C# 基于OpenCv的视觉工作流-章60-点点距离
图像处理·人工智能·opencv·算法·计算机视觉
nlpming4 小时前
OpenCode Skills 文档
算法
无限进步_4 小时前
二叉搜索树完全解析:从概念到实现与应用场景
c语言·开发语言·数据结构·c++·算法·github·visual studio
05候补工程师4 小时前
深度解构 ROS 2:如何手动调通 Nav2 A* 路径规划引擎
linux·人工智能·经验分享·算法·机器人
上弦月-编程4 小时前
【C语言逻辑题】谋杀案凶手是谁?——经典矛盾推理题详解
算法