def is_anagram_v1(string1, string2): """Returns True if both strings are anagrams.""" letters1 = list(string1.lower()) letters2 = list(string2.lower()) letters1.sort() letters2.sort() return letters1 == letters2 def is_anagram_v2(string1, string2): """Returns True if both strings are anagrams.""" letters1 = { l: string1.lower().count(l) for l in set(string1.lower()) if l.isalpha() } letters2 = { l: string2.lower().count(l) for l in set(string2.lower()) if l.isalpha() } return letters1 == letters2 def is_anagram_v3(string1, string2): if len(string1) != len(string2): return False letters1, letters2 = list(string1.lower()), list(string2.lower()) for letter in letters1: try: letters2.remove(letter) except ValueError: return False return True is_anagram = is_anagram_v3