classSolution: deflengthOfLongestSubstring(self, s: str) -> int: s = list(s) n = len(s) h = dict() if n == 0: return0 ans = 1 left = 0 for i inrange(n): if s[i] notin h: h[s[i]] = 1 else: h[s[i]] += 1 while h[s[i]] > 1: h[s[left]] -= 1 left += 1 ans = max(ans, i-left+1) return ans
classSolution: deffindAnagrams(self, s: str, p: str) -> List[int]: p = list(p) s = list(s) ans = [] h_p = {chr(i): 0for i inrange(97, 123)} h_s = {chr(i): 0for i inrange(97, 123)} iflen(s) < len(p): return ans
for i inrange(len(p)): h_p[p[i]] += 1 h_s[s[i]] += 1
index = 0
for i inrange(len(p), len(s)): if h_p == h_s: ans.append(index) h_s[s[index]] -= 1 h_s[s[i]] += 1 index += 1 if h_p == h_s: ans.append(index) return ans