242.有效的字母异位词
题目
给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的一个字母异位词。
- 示例 1:
输入: s = “anagram”, t = “nagaram”
输出: true - 示例 2:
输入: s = “rat”, t = “car”
输出: false
说明:你可以假设字符串只包含小写字母。
解题思路
通过阅读题目和示例我们可以知道,两个字符串的字母异位词是指两个字符串包含的字符种类及数目一致。若两个字符串都为空,则两个字符串是异位词,直接返回True;若两个字符串长度不等,则直接返回False;若两个字符串长度相等,我们将 t 转换成集合(集合中不包含重复元素,相对于列表来说可以节省遍历的时间,同时占用空间也比列表小),接下来从这个集合中取字符串统计这个字符在两个字符串中出现的次数是否相等,如果遇到次数不相等的字符,直接返回False,否则返回True。
代码如下
class Solution:
def isAnagram(self, s, t):
"""
:type s: str
:type t: str
:rtype: bool
"""
if s == None or t==None:
return False
if s=="" and t =="":
return True
if len(s)!=len(t):
return False
sett =set(t)
for m in sett:
if s.count(m) != t.count(m):
return False
return True
…