#242. 有效的字母异位词
第一个哈希表题目
输入: s = "anagram", t = "nagaram" 输出: true
输入: s = "rat", t = "car" 输出: false
s 和 t 仅包含小写字母
class Solution(object):
def isAnagram(self, s, t):
"""
:type s: str
:type t: str
:rtype: bool
"""
# 数组即是一个简单的哈希表,题目中只有小写字母,可以定义数组record记录字母出现的次数
# 哈希表的大小为26,因为字符a到字符z的ASCII也是26个连续的数值
# 检测方式:
# 对于字符串s,对应字母出现 +1,对于t,对应字母出现 -1;最终数组record所有元素为0则返回true
record = [0] * 26
for i in range(len(s)):
#并不需要记住字符a的ASCII,只要求出一个相对数值就可以了,ord返回对应的 ASCII 数值,或者 Unicode 数值
record[ord(s[i]) - ord('a')] += 1
for i in range(len(t)):
record[ord(t[i]) - ord('a')] -= 1
for i in range(len(record)): # 虽然也存在遍历,但是record的长度是26,而不是n
if record[i] != 0:
return False
return True



