题目描述
给定两个字符串 s
和 t
,编写一个函数来判断 t
是否是 s
的字母异位词。
注意:若 s
和 t
中每个字符出现的次数都相同,则称 s
和 t
互为字母异位词。
解题思路:
最直观就是两层for循环,但是要注意判断某些字母是否出现了多次。其实是利用哈希表,记录26个字母中每个字母出现的次数,最后判断(代码中采用了先加后减的表达方式),哈希表法的时间复杂度只有O(n)。
class Solution:
def isAnagram(self, s: str, t: str) -> bool:
record = [0]*26
for i in s:
record[ord(i) - ord("a")] += 1
for j in t:
record[ord(j) - ord("a")] -= 1
for k in range(26):
if record[k] != 0:
return False
return True