class Solution(object):
def findAnagrams(self, s, p):
"""
:type s: str
:type p: str
:rtype: List[int]
"""
anaDict = {}
for i in p :
if i not in anaDict :
anaDict[i] = 1
else :
anaDict[i] += 1
analen = len(p)
result = []
for i, v in enumerate(s) :
checkstr = s[i:i+analen]
isana = True
checkDict = anaDict.copy()
checklen = analen
for n in checkstr :
if n not in anaDict :
isana = False
break
elif checkDict[n] > 0 :
checkDict[n] = checkDict[n] - 1
checklen = checklen - 1
if isana and checklen == 0 :
result.append(i)
return result
Sliding window algorithm 공부해볼 것