题目描述:
Given an array of strings, group anagrams together.
For example, given: ["eat", "tea", "tan", "ate", "nat", "bat"],
Return:
[ ["ate", "eat","tea"], ["nat","tan"], ["bat"] ]
Note: All inputs will be in lower-case.
我的思路:
给出一个列表中很多字符串,把使用相同字母的单词找出来存放在一个列表中。
用一个字典的key来保存出现过的单词,value是一个列表用来储存一样的单词,对strs循环,每个单词排序进行比较就可以了,不同就加入到value保存的列表中。
我的代码:
class Solution:
def groupAnagrams(self, strs):
"""
:type strs: List[str]
:rtype: List[List[str]]
"""
used = {}
for x in strs:
l = sorted(list(x))
l = ''.join(l)
if l not in used:
used[l] = []
used[l].append(x)
else:
used[l].append(x)
rel = []
for i in used:
rel.append(used[i])
return relDiscuss:
def groupAnagrams(self, strs):
"""
:type strs: List[str]
:rtype: List[List[str]]
"""
dic = {}
for str in strs:
key = ''.join(sorted(str))
if key in dic:
dic.get(key).append( str )
else:
dic[key] = [str]
return dic.values()学到:
- 思路是一样的,但是人家的代码就很简洁,还是有一些特性不是很了解。比如说get(key),有的代码可以一行解决,而且可读性不是很差的。
本文介绍了一种算法,用于将包含相同字母但排列不同的单词分组。通过使用字典存储已处理的单词及其对应的分组,实现高效查找与分组功能。
510

被折叠的 条评论
为什么被折叠?



