给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。
示例 1:
输入: s = “anagram”, t = “nagaram”
输出: true
示例 2:
输入: s = “rat”, t = “car”
输出: false
思路:字母异位词:s中一个字母位置变化生成新的序列t ,两个序列中出现的字母是相同的,所以a-z字母的数目其实是不变的,只是出现的位置不同。
所以判断是不是异位词:
(1)长度是否相同:不相同:false ;相同:继续判断(2)
(2)a-z 的出现数目是否相同
python代码如下:
class Solution(object):
def isAnagram(self, s, t):
"""
:type s: str
:type t: str
:rtype: bool
"""
ds = {}
dt = {}
if len(s)!=len(t):
return False
else:
for c in s:
ds[c] = ds.get(c,0)+1
for d in t:
dt[d] = dt.get(d,0)+1
if ds==dt:
return True
else:
return False
使用字典存储字母出现的数目
python 字典(Dictionary) get() 函数返回指定键的值,如果值不在字典中返回默认值。
get()方法语法:
dict.get(key, default=None)
参数
key – 字典中要查找的键。
default – 如果指定键的值不存在时,返回该默认值。
返回值:返回指定键的值,如果值不在字典中返回默认值None。