题目:判断两个字符串是否是变位词。 提示:如果一个字符串是另一个字符串的重新排列组合,那么这两个字符串是变位词。
时间: 2024-10-13 11:13:59 浏览: 57
C#判断一个字符串是否包含另一个字符串的方法
题目描述的是检查两个字符串是否由相同的字符组成,只是顺序不同,这种情况下我们就称它们为变位词。例如,“listen”和“silent”就是变位词,因为它们包含相同的字母,只是字母的位置不同。
一种常见的解决方法是利用哈希表(如Python中的字典或集合)。首先对每个字符串中的字符及其出现次数进行统计,然后比较两个统计结果是否相等。如果所有字符的计数都一样,则说明是变位词;反之则不是。
以下是Python的一个简单实现:
```python
def is_anagram(s1, s2):
if len(s1) != len(s2): # 如果长度不同,直接返回False
return False
char_count = {} # 创建空字典存储字符及其计数
for char in s1:
char_count[char] = char_count.get(char, 0) + 1
for char in s2:
if char not in char_count or char_count[char] == 0:
return False
char_count[char] -= 1
return True
# 示例
s1 = "listen"
s2 = "silent"
print(is_anagram(s1, s2)) # 输出: True
```
阅读全文