leetcode_242 有效的字母异位词

1,179 阅读1分钟

要求

给定两个字符串 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

image.png

解题思路:第一种解法:直接返回两个字符串排序后的列表,判断是否相等;第二种解法:我们使用Counter统计字符的个数的字典是否相同;第三种解法:和第二种方法中思路相同,使用字典,只不过是我们自己使用循环进行字典的构建