メインコンテンツへスキップ

NeetCode 150 [Arrays & Hashing]:medium 1/6

· loading · loading ·
kiitosu
著者
kiitosu
画像処理やデバイスドライバ、データ基盤構築からWebバックエンドまで、多様な領域に携わってきました。地図解析や地図アプリケーションの仕組みにも経験があり、幅広い技術を活かした開発に取り組んでいます。休日は草野球とランニングを楽しんでいます。
目次

NeetCodeのSolutionを書いていく
#

Group Anagrams
#

問題概要
#

文字列のリストが与えられます。 アナグラムをサブリストにまとめて返しましょう。 リストの順番は問いません。

前提

  • 文字列は小文字。
  • 配列長は1~1000
  • 文字列長は0~100

#

Input: strs = [“act”,“pots”,“tops”,“cat”,“stop”,“hat”] Output: [[“hat”],[“act”, “cat”],[“stop”, “pots”, “tops”]]

Input: strs = [“x”] Output: [[“x”]]

Input: strs = [""] Output: [[""]]

メモ
#

文字列をソートしてハッシュのキーにすればできそう。 でもそれだとソートの時間がかかっちゃうかな。

とりあえずいけた。 回答もこんな感じではあった。

class Solution:
    def groupAnagrams(self, strs: List[str]) -> List[List[str]]:
        result: Dict = {}
        for str in strs:
            sorted_str = "".join(sorted(str))
            if sorted_str not in result:
                result[sorted_str] = [str]
            else:
                result[sorted_str].append(str)
        return list(result.values())
Reply by Email

関連記事

NeetCode 150 [Arrays & Hashing]:medium 3/6
· loading · loading
NeetCode 150 [Arrays & Hashing]:medium 2/6
· loading · loading
NeetCode 150 [Bit Manipulation]:easy 2/2
· loading · loading