LoginSignup
0
0

More than 1 year has passed since last update.

Pythonでアナグラムを判別するプログラムの作成

Posted at

アナグラムとは

〘名〙 (anagram) ことばのつづりを換えることによる遊び。単語をばらばらに崩し、全く別の単語を作る。LIVE が EVIL に、TIME が EMIT にの類。
出典: 精選版 日本国語大辞典

例えば、evilとlive, eatとteaなどがアナグラムの例として挙げられます。

与えられた配列からアナグラムをグループ分けする

いくつかの単語が格納されたリスト(strs)からアナグラムとなっている単語のグループを返す関数を作ります。

def groupingAnagram(strs):
    hashMap = {} #ハッシュマップを作成

    for s in strs:                  
        key =''.join(sorted(s))  # 文字列をアルファベット順にソートする
        if key not in  hashMap.keys():    
            hashMap[key] = [s]     # ハッシュマップにキーを作成
        else:
            hashMap[key].append(s) # 文字列sから作られたキーが既にハッシュマップにあるなら、そこにsを追加
    return  hashMap   

strs = ["eat","tea", "evil", "live"]
print(groupingAnagram(strs))

実行

{'aet': ['eat', 'tea'], 'eilv': ['evil', 'live']}

アルファベット順に並べられた文字列をキーとして、アナグラムのグループ分けができました。

参考

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0