Problem: 242. 有效的字母异位词
文章目录
- 思路
- 解题方法
- 复杂度
- Code
思路
采用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