[Leet Code] 49. Group Anagrams
3169 ワード
提问链接
問題の説明
Given an array of strings strs, group the anagrams together. You can return the answer in any order.
An Anagram is a word or phrase formed by rearranging the letters of a different word or phrase, typically using all the original letters exactly once.
例
Input: strs = ["eat","tea","tan","ate","nat","bat"]
Output: [["bat"],["nat","tan"],["ate","eat","tea"]]
制限
1 <= strs.length <= 104
0 <= strs[i].length <= 100
strs[i] consists of lowercase English letters.
に答える
この問題は単語を一列に並べて、同じ単語かどうかを見て、グループに分けて出力すればいいです.
sorded()を使用して単語のレイアウトをソートし、sorded()をリスト形式で返すため、joinを使用して文字列とし、dickshernerのキーとして使用します.
Annegram関係の単語には同じキーがあります.
defaultdictをリストとして宣言し、dickシャナリーに単語を入れます.
ディクシャナリー値をリストに変換して返します.
test cases passedRuntimeMemory Usage115/115132ms17.7MB
from collections import defaultdict
class Solution:
def groupAnagrams(self, strs: List[str]) -> List[List[str]]:
anagrams = defaultdict(list)
for i in strs:
word = ''.join(sorted(i))
anagrams[word].append(i)
return list(anagrams.values())
Reference
この問題について([Leet Code] 49. Group Anagrams), 我々は、より多くの情報をここで見つけました https://velog.io/@redcarrot01/Leet-Code-49.-Group-Anagramsテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol