Python 判断两个字符串是否是 anagram
Anagram 是指由相同字母重新排列而成的单词或短语。例如,"listen" 和 "silent" 就是一对 anagram。我们可以通过比较两个字符串的字母组成来判断它们是否是 anagram。
实例
def is_anagram(str1, str2):
# 移除空格并将字符串转换为小写
str1 = str1.replace(" ", "").lower()
str2 = str2.replace(" ", "").lower()
# 检查两个字符串的长度是否相同
if len(str1) != len(str2):
return False
# 对字符串进行排序并比较
return sorted(str1) == sorted(str2)
# 测试
print(is_anagram("listen", "silent")) # True
print(is_anagram("triangle", "integral")) # True
print(is_anagram("apple", "pale")) # False
# 移除空格并将字符串转换为小写
str1 = str1.replace(" ", "").lower()
str2 = str2.replace(" ", "").lower()
# 检查两个字符串的长度是否相同
if len(str1) != len(str2):
return False
# 对字符串进行排序并比较
return sorted(str1) == sorted(str2)
# 测试
print(is_anagram("listen", "silent")) # True
print(is_anagram("triangle", "integral")) # True
print(is_anagram("apple", "pale")) # False
代码解析:
str1.replace(" ", "").lower()
和str2.replace(" ", "").lower()
:首先移除字符串中的空格,并将字符串转换为小写,以确保比较时不区分大小写和空格。if len(str1) != len(str2):
:检查两个字符串的长度是否相同,如果长度不同,则它们不可能是 anagram。sorted(str1) == sorted(str2)
:对两个字符串进行排序,并比较排序后的结果。如果排序后的字符串相同,则它们是 anagram。
输出结果:
True True False