【排序】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
分类:
leetcode简单题
, leetcode-排序
标签:
leetcode-排序
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通