35 lines
910 B
Python
35 lines
910 B
Python
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
|