1. 题目:
给定两个字符串 s 和 t ,编写一个函数来判断它们是不是一组变位词(字母异位词)。
注意:若 s 和 t 中每个字符出现的次数都相同且字符顺序不完全相同,则称 s 和 t 互为变位词(字母异位词)。
示例 1:
输入: s = “anagram”, t = “nagaram”
输出: true
示例 2:
输入: s = “rat”, t = “car”
输出: false
示例 3:
输入: s = “a”, t = “a”
输出: false
2. 我的代码:
from collections import defaultdict class Solution: def isAnagram(self, s: str, t: str) -> bool: if s == t: return False dic1 = defaultdict(int) dic2 = defaultdict(int) for ele in s: dic1[ele] += 1 for ele in t: dic2[ele] += 1 return dic1 == dic2
这个题没有任何难度,很明显就是使用哈希表即可。哈希表有三种:list/数组、set、dict/map。使用情况:
list:数值范围比较小时
set:数值范围比较大时
dict:呈现key-value规则(一般使用defaultdict即可)
这里通过defaultdict不断增加元素和累计元素出现次数,最后比较一下dic1和dic2即可知道是否是异位词