可以用字典做 也可以用再加个函数判断是否是Anagrams
class Solution:
def findAnagrams(self, s, p):
"""
:type s: str
:type p: str
:rtype: List[int]
"""
if s=="":
return []
res=[]
lp = len(p)
ls = len(s)
if lp > ls:
return []
pdict={}
sdict={}
for i in range(lp):
if not p[i] in pdict:
pdict[p[i]] = 1
else:
pdict[p[i]]+=1
for i in range(lp):
if not s[i] in sdict:
sdict[s[i]] = 1
else:
sdict[s[i]]+=1
i=0
while i < (ls-lp):
if pdict == sdict:
res.append(i)
sdict[s[i]]-=1
if sdict[s[i]] == 0:
del sdict[s[i]]
if not s[i+lp] in sdict:
sdict[s[i+lp]] = 1
else:
sdict[s[i+lp]]+=1
i+=1
if sdict == pdict:
res.append(i)
return res