在另一个字符串中找到一个换位符

2024-05-15 23:16:44 发布

您现在位置:Python中文网/ 问答频道 /正文

我正努力以最有效的方式解决这个问题。在

找出给定的字串是否包含另一个较小字串的字元

我的方法是创建一个包含较小字符串(s2)和该字符串出现次数的哈希表/字典。 迭代给定的字符串(s1)并查看哈希表中是否找到所有字符。在

现在我的代码的运行时是O(3N)和O(N)额外的空间。我想知道有没有更好的方法来解决这个问题。在

def contains_anagram(s1, s2):
    characters = {}
    for i in s2:
        if i in characters:
            characters[i] += 1
        else:
            characters[i] = 1
    for i in s1:
        if i in characters:
            characters[i] -= 1
        else:
            continue
    for i in characters:
        if characters[i] > 0:
            return False
    return True

Tags: 方法字符串inforreturnif字典方式