알고리즘

[LeetCode] 438. Find All Anagrams in a String

유병각 2022. 6. 21. 21:43
from collections import Counter

class Solution:
    def findAnagrams(self, s: str, p: str) -> List[int]:
        C = Counter(p)
        length = len(p)
        n = len(s)
        left = 0
        right = length - 1
        Temp = Counter(s[left: right + 1])
        ret = []
        
        while (right < n):
            if (Temp == C):
                ret.append(left)
            
            if (right == n - 1):
                return ret
            
            Temp[s[left]] -= 1
            left += 1
            right += 1
            Temp[s[right]] += 1