1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| class Solution: def findAnagrams(self, s: str, p: str) -> List[int]: cp=Counter(p) cs=defaultdict(int) ret=[] for i in range(len(s)): cs[s[i]]+=1 if i>=len(p): cs[s[i-len(p)]]-=1 if cs[s[i-len(p)]]==0: del cs[s[i-len(p)]] if cs==cp: ret.append(i-len(p)+1) return ret
|