アルゴリズム:管理メモリの収集

2330 ワード

質問する


次のように入力する場合は、同じアルファベットからなる単語を組み合わせてください.
Input: ["eat", "tea", "tan", "ate", "nat", "bat"],
Output:
[
  ["ate","eat","tea"],
  ["nat","tan"],
  ["bat"]
]
outputに順序がありません.

に答える



  • dicのキーと標準となる管理図を作成します.
    let anagram = str.split('').sort().join('')

  • キー値が存在しない場合、管理RAMはキー値となり、その文字列をvalueとして空の配列に格納します.

  • 逆に、同じangramが既に存在する場合は、配列に対応する文字を追加します.
    !dic[anagram]? dic[anagram]=[str] : dic[anagram].push.(str)

  • 最終的に返される値は、dicの値、Objectを含む配列であるためです.値(dic)を返します.
    return Object.values(dic)