0242. 有效的字母异位词

0242. 有效的字母异位词 #

  • 标签:字符串、哈希表、排序
  • 难度:简单

题目大意 #

给定两个字符串 s 和 t ,判断 t 和 s 是否使用了相同的字符构成(字符出现的种类和数目都相同)。

解题思路 #

  1. 先判断字符串 s 和 t 的长度,不一样直接返回 false;
  2. 分别遍历字符串 s 和 t。先遍历字符串 s,用哈希表存储字符串 s 中字符出现的频次;
  3. 再遍历字符串 t,哈希表中减去对应字符的频次,出现频次 < 0 则输出 false;
  4. 如果没出现频次 < 0,则输出 true。

代码 #

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
def isAnagram(self, s: str, t: str) -> bool:
    if len(s) != len(t):
        return False
    strDict = dict()
    for ch in s:
        if ch in strDict:
            strDict[ch] += 1
        else:
            strDict[ch] = 1
    for ch in t:
        if ch in strDict:
            strDict[ch] -= 1
            if strDict[ch] < 0:
                return False
        else:
            return False
    return True
本站总访问量  次  |  您是本站第  位访问者