【排序】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

 

posted @ 2022-10-06 09:21  BJFU-VTH  阅读(32)  评论(0编辑  收藏  举报