有效的字母异位词-hash表

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