要求
给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。
注意:若 s 和 t 中每个字符出现的次数都相同,则称 s 和 t 互为字母异位词。
示例 1:
输入: s = "anagram", t = "nagaram"
输出: true
示例 2:
输入: s = "rat", t = "car"
输出: false
核心代码
class Solution:
def isAnagram(self, s: str, t: str) -> bool:
return sorted(s) == sorted(t)
另一解法
class Solution:
def isAnagram(self, s: str, t: str) -> bool:
from collections import Counter
return Counter(s) == Counter(t)
第三种解法
class Solution:
def isAnagram(self, s: str, t: str) -> bool:
hashmaps,hashmapt = dict(),dict()
for char in s:
hashmaps[char] = hashmaps.get(char,0) + 1
for char in t:
hashmapt[char] = hashmapt.get(char,0) + 1
return hashmaps == hashmapt
解题思路:第一种解法:直接返回两个字符串排序后的列表,判断是否相等;第二种解法:我们使用Counter统计字符的个数的字典是否相同;第三种解法:和第二种方法中思路相同,使用字典,只不过是我们自己使用循环进行字典的构建