class Solution:
def isAnagram(self, s: str, t: str)-> bool:
if len(s)!=len(t):
return False
record=[0]*26#定义包含26个英文字母的数组(数组就是简单的哈希表,但是大小受限)
for i in range(len(s)):
record[ord(s[i])-97]+=1#定义数组索引,小写a-z对应0-25
record[ord(t[i])-97]-=1#s中的字母在数组中+1,t中的字母-1
for i in record:
if i!=0:#如果数组中出现非0的数则不是字母异位词
return False
return True
test=Solution()
print(test.isAnagram('anagram','nagaram'))
时间复杂度为O(n),空间上因为定义是的一个常量大小的辅助数组,所以空间复杂度为O(1)。