python leetcode 438. Find All Anagrams in a String
阿新 • • 發佈:2018-12-02
可以用字典做 也可以用再加個函式判斷是否是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