242. 有效的字母异位词
题目描述
给定两个字符串 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
python

浙公网安备 33010602011771号