给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。 (照旧第一个我写的,其他的我抄的.)
class Solution(object):
def isAnagram1(self, s, t):
"""
:type s: str
:type t: str
:rtype: bool
"""
set_s = set(s)
set_t = set(t)
if len(s) != len(t) or set_s != set_t:
return False
s = sorted(s)
t = sorted(t)
return s == t
def isAnagram2(self, s, t):
""" 我可能是疯了,我一直感觉count很内存所以没用,我想多了
:type s: str
:type t: str
:rtype: bool
"""
if len(s) != len(t):
return False
a = set(s)
for i in a:
if s.count(i) != t.count(i):
return False
return True
def isAnagram(self, s, t):
""" 实验才是检验真理的唯一标椎
:type s: str
:type t: str
:rtype: bool
"""
s_dic, t_dic = {}, {}
for i in s:
s_dic[i] = s_dic.get(i, 0) + 1
for i in t:
t_dic[i] = t_dic.get(i, 0) + 1
return s_dic == t_dic
if __name__ == '__main__':
s1 = Solution()
# s = "rat"; t = "car"
# s = "anagram"; t = "nagaram"
# s = "aa"; t = "bb"
s = "aabbbb"; t="aaaabb"
print(s1.isAnagram(s, t))