3月-395。少なくともK個の繰り返し文字を含む最長の部分文字列

 

class Solution:
    def longestSubstring(self, s: str, k: int) -> int:
        
        #如果字符串的长度是小于k的直接返回0
        if len(s)<k:
            return 0

        #遍历该字符串
        for c in set(s):
            #如果该字符的出现次数小于k,那么一定不能在子字符串中出现
            #所以根据该字符串将s切分,然后遍历每个子串,再去找最长子串的长度
            if s.count(c)<k:
                return max(self.longestSubstring(t,k) for t in s.split(c))

        #如果字符出现次数都大于等于k直接返回字符串的长度即可
        return len(s)
  • 最初に弦の長さとKを観察して判断します
  • 文字列内の文字をトラバースし、文字の出現回数がk未満の場合は、文字列を部分文字列に分割してから、最長の部分文字列の長さを再帰的に見つけます。 

 

おすすめ

転載: blog.csdn.net/weixin_37724529/article/details/114279233