2024/12/3 【哈希表】 LeetCode 242.有效的字母异位词 【x】

题目链接:https://leetcode.cn/problems/valid-anagram/description/

解法1:

class Solution:
    def isAnagram(self, s: str, t: str) -> bool:
        record = [0]*26
        for i in s:
            record[ord(i) - ord('a')] += 1
        
        for i in t:
            record[ord(i) - ord('a')] -= 1
        
        for i in range(26):
            if record[i] != 0:
                return False
        return True      

1. record = [0]*26 

生成数组的方法

2.ord()函数

ord() 是 Python 内置的一个函数,用于返回单个字符的 Unicode 码点(整数表示)。它的作用是将一个字符转换为其对应的整数值。

解法2:

from collections import defaultdict
class Solution:
    def isAnagram(self, s: str, t: str) -> bool:
        s_dict = defaultdict(int)
        t_dict = defaultdict(int)

        for x in s:
            s_dict[x] += 1
        
        for x in t:
            t_dict[x] += 1
        
        return s_dict == t_dict

在 Python 中,defaultdictcollections 模块中的一个子类,用于创建字典(dict)。与普通字典不同的是,defaultdict 在访问不存在的键时会自动创建一个键,并将其值设置为默认值,而不抛出 KeyError 异常。

通常用在需要对键进行计数或统计的场景,例如频率统计等。

解法3:

from collections import Counter
class Solution:
    def isAnagram(self, s: str, t: str) -> bool:
        return Counter(s) == Counter(t)

Counter 是 Python 中 collections 模块提供的一个类,它是一个字典子类,专门用于计数(统计)元素在可迭代对象中出现的次数。Counter 会自动计算元素的频率,并将元素作为字典的键,频率作为对应的值。

posted on 2024-12-03 21:09  axuu  阅读(13)  评论(0)    收藏  举报