使用collections.Counter()在Python中进行字谜检查

当两个字符串具有相同的字符但按不同的顺序排列时,它们被称为字谜。例如,spot和post是字谜,因为它们具有相同的字母而形成不同的单词。在本文中,我们将看到如何检查两个字符串是否是字谜。

为此,我们使用称为集合的python模块。这用于存储数据集合,例如列表,字典,集合,元组等。这些是内置集合的示例。函数counter()只是对一个元素在集合中的存在次数进行计数,并将结果作为字典返回,以显示该元素及其计数。因此,如果两个字符串在每个字符串中具有匹配的计数,则我们将它们视为字谜。

示例

from collections import Counter
StringA = 'top spot'
StringB = 'pot post'
# Print the elements as adictionary
print Counter(StringA)
print Counter(StringB)
# Compare the dictionaries
if Counter(StringA)== Counter(StringB):
print 'StringA and StringB are Anagrams'

输出结果

运行上面的代码给我们以下结果-

Counter({'p': 2, 't': 2, 'o': 2, 's': 1, ' ': 1})
Counter({'p': 2, 't': 2, 'o': 2, 's': 1, ' ': 1})
StringA and StringB are Anagrams