Problem: 242. 有效的字母异位词
思路
采用Hash表统计两个字符是否是互为字母异位词
解题方法
定义一个hash表,由于字符属于a-z,可以通过一个数组来表示这个hash表,数组头为a出现次数的位置,数组尾为z出现次数的位置。遍历两个字符串,前者每次遍历的字符出现次数+1,后者字符出现次数-1。这样只要遍历完后这个数组存在不为0的值表示这两个字符串不是字母异位词
复杂度
时间复杂度:
O ( n ) O(n) O(n)
空间复杂度:
O ( n ) O(n) O(n)
Code
class Solution:
def isAnagram(self, s: str, t: str) -> bool:
d = [0] * 26
for si in s:
d[ord(si)- ord('a')] += 1
for si in t:
d[ord(si)- ord('a')] -= 1
for i in d:
if not i==0:
return False
return True