NO49. 字母异位词分组
#首先进行排序把相同字符的排到一起
#遍历把排序字符当键,原元素当值加入列表
class Solution:
def groupAnagrams(self, strs: List[str]) -> List[List[str]]:
if len(strs)<=1:
return [strs]
r = {}
for i in strs:
s = ''.join(sorted(i))
if s not in r:
r[s] = [i]
else:
r[s].append(i)
return [v for v in r.values()]
#暴力破解法
#对每个字符都做一个字典,然后做一个字典的列表,以及相对应的答案列表
#如果这个字符在这个字典中,就在答案列表对应的子列表中添加字符
#不然的话就在答案列表中创建子列表,然后在字典列表中加入这个字典
class Solution:
def groupAnagrams(self, strs: List[str]) -> List[List[str]]:
dictLst, ans = [], []
for s in strs:
temp = self.changeToDict(s)
if temp not in dictLst: #当字符所对应的字典不在字典列表中
dictLst.append(temp) #字典列表添加这个字典
ans.append([s]) #答案添加一个列表,其下标和字典列表一一对应
else: #如果这个字符在这个字典中,就在答案列表对应的子列表中添加字符
ans[dictLst.index(temp)].append(s)
return ans
def changeToDict(self, s):
a = {}
for i in s:
if i in a:
a[i] += 1
else:
a[i] = 1
return a
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)