classSolution: deflengthOfLongestSubstring(self, s: str) -> int: d = {} res = 0 l, r = 0, 0 while r < len(s): while l < r and s[r] in d: d.pop(s[l]) l += 1 d[s[r]] = 1 res = max(r-l+1, res) r += 1 return res
classSolution: defgetMinDiffCharTime(self, d): iflen(d) <= 1: return0 maxi = 0 total = 0 for v in d.values(): maxi = max(maxi, v) total += v return total - maxi defcharacterReplacement(self, s: str, k: int) -> int: d = {} l = 0 result = 0 for r inrange(len(s)): d[s[r]] = d[s[r]] + 1if s[r] in d else1 while l < r andself.getMinDiffCharTime(d) > k: if d[s[l]] == 1: d.pop(s[l]) else: d[s[l]] -= 1 l += 1 result = max(result, r-l+1) return result