判断两个字符串是否为变位词
时间: 2023-10-18 14:20:12 浏览: 185
C++变位词问题分析
判断两个字符串是否为变位词可以使用哈希表来解决,具体步骤如下:
1. 首先判断两个字符串的长度是否相等,如果不相等,则它们一定不是变位词。
2. 对于两个字符串,分别统计它们中每个字符出现的次数。可以使用一个大小为 26 的数组来统计,其中数组下标表示字符,数组的值表示该字符出现的次数。
3. 遍历两个数组,如果它们不完全相等,则说明两个字符串不是变位词。
以下是代码实现:
```python
def is_anagram(s1, s2):
if len(s1) != len(s2):
return False
count = [0] * 26
for c in s1:
count[ord(c) - ord('a')] += 1
for c in s2:
count[ord(c) - ord('a')] -= 1
if count[ord(c) - ord('a')] < 0:
return False
return True
```
这里假设字符串只包含小写字母,因此可以使用 ord 函数将字符转换为对应的 ASCII 码值,然后用数组来统计每个字符出现的次数。
阅读全文