灵神题单-滑动窗口-非固定长度

185 阅读1分钟

给你一个字符串 s ,请找出满足每个字符最多出现两次的最长子字符串,并返回该

子字符串的 最大 长度。 示例 1:

输入:  s = "bcbbbcba"

输出:  4

解释:

以下子字符串长度为 4,并且每个字符最多出现两次:"bcbbbcba"

示例 2:

输入:  s = "aaaa"

输出:  2

解释:

以下子字符串长度为 2,并且每个字符最多出现两次:"aaaa"

模板:

class Solution:
    def maximumLengthSubstring(self, s: str) -> int:
        sLen=len(s)
        window=defaultdict(int) //设置一个字段,window
        left,right=0,0//设置一个leftright
        ans=0  
        while right<sLen:
            sIn=s[right]  //window[sIn]+=1 // 判断是否符合条件
            while window[sIn]>2:
                out=s[left] //left+=1     //左边移动
                window[out]-=1 //window缩小
            ans=max(ans,right-left+1) //计算结果
            right+=1   //右侧
        return (ans)