python_morsels/is_anagram/anagram.py

35 lines
910 B
Python
Raw Normal View History

2021-01-31 17:32:40 +01:00
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
2021-01-31 17:33:55 +01:00
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