辞書に登録された文字列と文字がシャッフルされている文字列の判定方法

Powered by dKingyo ソフトウェア開発技術者 | Rails | Python | Game Programming Gems | Perl

http://q.hatena.ne.jp/1182946023
より・・・。
興味深い。
と言う事でちょっと考える。私ならば・・・

  • 辞書ファイルを用意する(読み込めれば形式はなんでもOK)(これを*1とする)
  • *1に登録してある文字列を文字単位でソートした辞書ファイル(これを*2とする)を用意する。
  • *2に登録してある文字列から*1に登録してある文字列を参照できるようにする。

以上が辞書ファイルの構造


文字列のマッチングは・・・

  • 文字がシャッフルされている文字列をソートする (このソートされた文字列を*3とする)
  • *3を検索対象として*2の辞書から検索する。
  • *2の辞書から検索対象が見つかったらそれを元に*1の辞書を参照する。
  • *1の辞書から登録してあるデータを引き出す。


このような方法はどうだろうか?*1
このような処理をするならばgoogle:QDBMがライブラリとして使い勝手が良い気がする。


追記:d:id:krackmaniaさんより 
横着プログラミング 第6回: chatty: 小うるさい端末 http://0xcc.net/unimag/6/

*1:アルゴリズム的にもっと速い方法があるかもしれない。ご存知の方はコメントをいただけるとありがたい。