【排序】242. 有效的字母异味词
https://leetcode.cn/problems/valid-anagram/
这种题目简单是很简单,但是写起来很麻烦。
思路:
先搞一个dict用来存放第一个字符串各字符及其出现次数的对应关系。
然后遍历第二个字符串,对应的减掉次数。
看最后剩下的dict是个啥东西,就行了。
当然了,这题目也可以进行排序。但是需要注意,字符串是不可变类型,不能直接用obj.sort进行排序,因为字符串不能原地修改。所以只能用sorted.
而sorted返回的是一个排好序的字符数组。
代码:
1 class Solution: 2 def isAnagram(self, s: str, t: str) -> bool: 3 mem = dict() 4 for i in s: 5 if i in mem: 6 mem[i] += 1 7 else: 8 mem[i] = 1 9 for i in t: 10 if i not in mem: 11 return False 12 mem[i] -= 1 13 if mem[i] < 0: 14 return False 15 for k in mem: 16 if mem[k] > 0: 17 return False 18 return True
代码: 排序版本:
1 class Solution: 2 def isAnagram(self, s: str, t: str) -> bool: 3 if len(s) != len(t): 4 return False 5 s = sorted(s) 6 t = sorted(t) 7 for i in range(len(s)): 8 if s[i] != t[i]: 9 return False 10 return True