解法
解法一:
class Solution:
def isAnagram(self, s: str, t: str) -> bool:
if len(s) != len(t):
return False
res = {}
for i in s:
if i in res:
res[i] += 1
else:
res[i] = 1
for i in t:
if i not in res:
return False
else:
res[i] -= 1
for i in res:
if res[i] != 0:
return False
return True
解法二:[思路一样,更加优雅]
import collections
class Solution(object):
def isAnagram(self, s, t):
"""
:type s: str
:type t: str
:rtype: bool
"""
if len(s) != len(t):
return False
dicts = collections.defaultdict(int)
for i in range(len(s)):
dicts[s[i]] = dicts[s[i]] + 1
dicts[t[i]] = dicts[t[i]] - 1
for i in dicts.values():
if i != 0:
return False
return True
解法三: [排序一样对比]
class Solution(object):
def isAnagram(self, s, t):
if len(s) != len(t):
return False
if sorted(s) != sorted(t):
return False
return True
收获
一、defaultdict[修改默认返回值]
from collections import defaultdict
dict1 = defaultdict(int)
dict2 = defaultdict(set)
dict3 = defaultdict(str)
dict4 = defaultdict(list)
dict1[2] ='two'
print(dict1[1])
print(dict2[1])
print(dict3[1])
print(dict4[1])
'''
这时defaultdict就能排上用场了,defaultdict的作用是在于,
当字典里的key不存在但被查找时,返回的不是keyError而是一个默认值
'''
二、python按照长度遍历
for i in range(len(s))
三、dict的用法
# 遍历键
for i in dicts:
# 遍历值
for i in dicts.values():
https://blog.csdn.net/qq_42873554/article/details/106827677