以下是一个使用字典来比较两个字符串是否为变位词的示例代码:
def is_anagram(str1, str2):
# 如果两个字符串的长度不相等,则它们一定不是变位词
if len(str1) != len(str2):
return False
# 创建一个字典来记录每个字符的出现次数
char_count = {}
# 遍历第一个字符串,并将字符出现次数记录到字典中
for char in str1:
if char in char_count:
char_count[char] += 1
else:
char_count[char] = 1
# 遍历第二个字符串,并从字典中减去字符出现次数
for char in str2:
if char in char_count:
char_count[char] -= 1
else:
return False
# 检查字典中所有字符的出现次数是否为0
for count in char_count.values():
if count != 0:
return False
# 如果所有字符的出现次数都为0,则两个字符串为变位词
return True
# 测试示例
str1 = "listen"
str2 = "silent"
print(is_anagram(str1, str2)) # 输出: True
str3 = "abc"
str4 = "def"
print(is_anagram(str3, str4)) # 输出: False
该示例代码通过创建一个字典,记录第一个字符串中每个字符的出现次数,然后遍历第二个字符串,并从字典中减去字符的出现次数。最后,检查字典中所有字符的出现次数是否为0,如果是则说明两个字符串为变位词。