【排序】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 @   BJFU-VTH  阅读(40)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
点击右上角即可分享
微信分享提示