📅  最后修改于: 2023-12-03 14:55:43.766000             🧑  作者: Mango
在编程中,有时候我们需要检查两个字符串是否是彼此的字谜。字谜是指由相同的字符组成的字符串。例如,"listen" 和 "silent" 是彼此的字谜,因为它们都由相同的字符组成。
本文将介绍一种常见的算法来检查两个字符串是否是彼此的字谜,并提供代码实现。
要检查两个字符串是否是彼此的字谜,我们可以使用哈希表来记录每个字符的出现次数。首先,遍历第一个字符串,并对每个字符进行计数。然后,遍历第二个字符串,对每个字符的计数进行减减操作。如果最后哈希表中的所有计数都为零,则说明两个字符串是彼此的字谜。
def is_anagram(s1, s2):
if len(s1) != len(s2):
return False
count = {}
# 计数第一个字符串中的字符
for char in s1:
if char in count:
count[char] += 1
else:
count[char] = 1
# 遍历第二个字符串,对计数进行减减操作
for char in s2:
if char in count:
count[char] -= 1
else:
return False
# 检查计数是否都为零
for value in count.values():
if value != 0:
return False
return True
s1 = "listen"
s2 = "silent"
print(is_anagram(s1, s2)) # 输出:True
s1 = "hello"
s2 = "world"
print(is_anagram(s1, s2)) # 输出:False
以上代码会返回 True
或 False
,表示两个字符串是否是彼此的字谜。
本文介绍了一种常见的算法来检查两个字符串是否是彼此的字谜。通过使用哈希表来记录字符的出现次数,并进行计数和比较,可以快速判断两个字符串是否是彼此的字谜。这个算法的时间复杂度为 O(n),其中 n 是字符串的长度。这种方法可以在很多实际应用中使用,例如判断两个单词是否是彼此的字谜、判断字符串中是否有重复字符等。