PROBLEM 02
文字を並べ替えて同じになる語をまとめる
文字の構成が同じ語をグループ化します。
検索候補の単語を、文字の並べ替えだけで互いに変換できるグループへ整理します。 グループ同士の順番と、グループ内の語順は問いません。
groupAnagrams(words) はグループの配列を返してください。
英小文字だけを扱います。
例
入力: ["tea", "arc", "eat", "car", "bat", "ate"]
出力: [["tea", "eat", "ate"], ["arc", "car"], ["bat"]]
入力: ["", "b", ""]
出力: [["", ""], ["b"]]
制約
1 <= words.length <= 10,000- 各語の長さは
0以上100以下 - 各語は英小文字のみ
対応する問題: LeetCode #49 Group Anagrams
STEPWISE HINTS
ヒント
01考え方の方向
並び順ではなく、語を構成する文字の集合を表す共通の印を作れないか考えます。
02使うデータ構造
各語の文字をソートした文字列を Map のキーにすると、同じ構成の語が同じ場所に集まります。
03擬似コード
Map<string, string[]> を作る。各 word の文字をソートして key とし、対応する配列へ word を追加する。最後に Map の values を返す。
AFTER ACCEPTED
解説
AC 後に解説が開きます
まずは自分の言葉で方針を説明し、コードに落としてみましょう。