原题
写出一个函数 anagram(s, t)
判断两个字符串是否可以通过改变字母的顺序变成一样的字符串。
样例
给出 s = "abcd",t="dcab",返回 true.
给出 s = "ab", t = "ab", 返回 true.
给出 s = "ab", t = "ac", 返回 false.
解题思路
- 扫描s,通过哈希表存贮s中每个字母出现的次数
- 扫描t,每次在哈希表中寻找相应的key,对于次数-1,如果最后哈希表中所有的value都变成0,则表明s和t是anagram
完整代码
class Solution(object):
def isAnagram(self, s, t):
"""
:type s: str
:type t: str
:rtype: bool
"""
if len(s) != len(t):
return False
map = [0 for i in range(256)]
for i in range(len(s)):
map[ord(s[i])] += 1
for i in range(len(t)):
map[ord(t[i])] -= 1
for flag in map:
if flag != 0:
return False
return True