无重复字符的最长子串「变题」

3. 无重复字符的最长子串

 

开头先来一个小插曲,关于「滑动窗口」相关的总结可见 滑动窗口

这是一个滑动窗口的入门题,先直接给出代码:

这么简单,还总结干嘛!!因为看到很多人说这个题目考了很多「变题」

变题一:允许一个字符重复一次

变题二:允许所有字符重复一次

变题三:最多有两个不同字符的最长子串

可见题目 最多有两个不同字符的最长子串

变题四:至少有 K 个重复字符的最长子串

可见题目 至少有 K 个重复字符的最长子串

方法一:由于s仅由小写英文字母组成,所以限制窗口内不同字符的数量,从 1 到 26,便可以枚举所有可行子串

方法二:分治!先对每一个字符计数,以个数< k的字符为分割点