当两个字符串具有相同的字符但按不同的顺序排列时,它们被称为字谜。例如,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