242. 有效的字母易位词(Python)

题目

难度:★☆☆☆☆
类型:字符串

给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的一个字母异位词。

说明:
你可以假设字符串只包含小写字母。

示例

示例 1:
输入: s = "anagram", t = "nagaram"
输出: true

示例 2:
输入: s = "rat", t = "car"
输出: false
进阶:
如果输入字符串包含 unicode 字符怎么办?你能否调整你的解法来应对这种情况?

解答

方案1:统计字频

互为字母易位词的一对字符串,它们每个字符及其对应的出现次数是相同的,因此我们可以统计两个单词出现的字符及其出现次数,判断两个单词是否为字母易位词。这里我们使用Python中的Counter模块进行便捷统计。

from collections import Counter


class Solution(object):
    def isAnagram(self, s, t):
        """
        :type s: str
        :type t: str
        :rtype: bool
        """
        return Counter(s) == Counter(t)

方案2:使用列表

和方案1相同,不过这里将字符串转为字符数组,并进行排序来判断。

class Solution(object):
    def isAnagram(self, s, t):
        """
        :type s: str
        :type t: str
        :rtype: bool
        """
        return sorted(list(s)) == sorted(list(t))

如有疑问或建议,欢迎评论区留言~

你可能感兴趣的:(242. 有效的字母易位词(Python))