中间断了两天,今天是周五,在下周一前会补上前面的两道题。
题目
给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。
示例
输入: s = "anagram", t = "nagaram"
输出: true
说明
你可以假设字符串只包含小写字母。
进阶
如果输入字符串包含 unicode 字符怎么办?你能否调整你的解法来应对这种情况?
注意事项
思路一
看到这道题,有不少想法。可以先用 set() 判断是否有不一样的字母。有得话直接 return False,没有再判断出现字母的重复次数,这个可以用字典或者列表实现。最后判断顺序是否一致。
修改经历:
1. 一次通过。(第一次提交)
心得体会:
这题不难。
最终代码展示:
class Solution:
def isAnagram(self, s: str, t: str) -> bool:
sSet, tSet = set(s), set(t)
if sSet != tSet:
return False
else:
for i in sSet:
if s.count(i) != t.count(i):
return False
else:
pass
for j in range(0, len(s)):
if s[j] != t[j]:
break
else:
pass
return True
题解的答案都没关注词语的字母顺序,所以就不参考题解了。不过要注意的是,大部分用的 sort(s) 来生成字符串s的顺序。
至于进阶的unicode字符,其实字典就可以代替 conut() 来表示重复次数。