给定两个字符串 s 和 p,找到 s 中所有 p 的 异位词 的子串,返回这些子串的起始索引。不考虑答案输出的顺序。
class Solution(object):
def findAnagrams(self, s, p):
"""
:type s: str
:type p: str
:rtype: List[int]
"""
n = len(s)
res = []
left = 0
cnt = [0]*26
target = [0]*26
for c in p:
target[ord(c)-ord('a')] += 1
for i in range(n):
cnt[ord(s[i])-ord('a')] += 1
if i >= len(p):
cnt[ord(s[left])-ord('a')] -= 1
left += 1
if cnt == target:
res.append(left)
return res