leetcode每日一题—395.至少由K个重复字符的最长字串

编程入门 行业动态 更新时间:2024-10-10 13:16:10

leetcode每日一题—395.至少由K个重复字符的最长<a href=https://www.elefans.com/category/jswz/34/1729185.html style=字串"/>

leetcode每日一题—395.至少由K个重复字符的最长字串

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

思路:
该题用滑动窗口不太好做,主要是因为重复出现的字符不一定连续,这就使得 窗口什么时候滑动,什么时候扩展,不太容易判断。故换个思路,使用递归。
若某字符c在字符串中出现的次数小于k,则该字符一定不会出现在结果子串中。故可以该字符c作为划分点,对字符串进行切割。然后再对分割后的子串进行递归判断。

解答:

class Solution:def longestSubstring(self, s: str, k: int) -> int:if len(s) < k:return 0for c in set(s):if s.count(c) < k:return max(self.longestSubstring(t, k) for t in s.split(c))return len(s)

更多推荐

leetcode每日一题—395.至少由K个重复字符的最长字串

本文发布于:2024-03-13 06:24:07,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1733363.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:字串   字符   最长   leetcode

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!