sorted関数で、アナグラム判定

はじめに

アナグラムとは、ある文字列が別の文字列の並べ替えということ。

ソースコード

python/anagram.py at 39878c3c122d01bea78aa5276fb307879e29c975 · ki-hi-ro/python

def is_anagram(a, b):
  if sorted(a) == sorted(b):
    print(a + 'は、' + b + 'のアナグラム')
  else:
    print(a + 'は、' + b + 'のアナグラムではない')

is_anagram('listen', 'silent')
is_anagram('cat', 'cats')

出力結果

listenは、silentのアナグラム
catは、catsのアナグラムではない

アナグラム判定の仕組み

sorted関数は、文字列を1文字ずつ取り出し、辞書順に並べ替えたリストとして返す。

a=listen、b=silentの時、sorted関数を使った結果は、以下のようになる。

sorted(a)
['e', 'i', 'l', 'n', 's', 't']
sorted(b)
['e', 'i', 'l', 'n', 's', 't']

アナグラムであれば、同じリストになる。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です