同字母异序词

题目

给一个s和p返回p在s中同字母异序词的起始位置
s: “cbaebabacd” p: “abc”
Output:[0, 6]

思路

滑动窗口

代码

def areAnagram(str1, str2):
    if len(str1) != len(str2):
        return False
    return sorted(str1) == sorted(str2)

def findAnagrams(s,p):
    length = len(p)
    list1 = []
    for i in range(len(s)-length):
        if areAnagram(p,s[i:length+i]) is True:
            list1.append(i)
    return list1

s = "cbaebabacd"
p = "abc"
a = findAnagrams(s, p)
print(a)

猜你喜欢

转载自blog.csdn.net/aaaqqq1234/article/details/107803125