码迷,mamicode.com
首页 > 其他好文 > 详细

242. 有效的字母异位词

时间:2021-02-22 12:20:42      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:排序   als   数组   get   sel   strong   出现   bool   lambda   

题目描述

?给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。
?说明:
??你可以假设字符串只包含小写字母。
原题请参考链接https://leetcode-cn.com/problems/valid-anagram/

题解

方法一?【排序】

class Solution:
    def isAnagram(self, s: str, t: str) -> bool:
        # 字符串s按英文字母从小到大排序
        s = "".join((lambda x: (x.sort(), x)[1])(list(s)))
        # 字符串t按英文字母从小到大排序
        t = "".join((lambda x: (x.sort(), x)[1])(list(t)))
        if s == t:
            return True
        return False

方法二?【哈希表(数组哈希)】

class Solution:
    def isAnagram(self, s: str, t: str) -> bool:
        if len(s) != len(t):
            return False
        l = [0] * 26  # 数组作为哈希表,每个位置存放26个字母出现的次数
        for i in s:
            l[ord(i)-ord(‘a‘)] += 1
        for i in t:
            l[ord(i)-ord(‘a‘)] -= 1 
            # 小于0代表第二个字符串的某个字母出现次数比第一个字符串多
            if l[ord(i)-ord(‘a‘)] < 0:
                return False
        return True

242. 有效的字母异位词

标签:排序   als   数组   get   sel   strong   出现   bool   lambda   

原文地址:https://www.cnblogs.com/bladers/p/14423914.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!