Algorithm Race
文字列を変化させて目的のアルゴリズムを勝利させてください。
アルゴリズム解説
Naive Search
テキストの先頭からパターンを1文字ずつ比較し、不一致なら1文字右へシフトして再比較します。実装が簡単ですが、最悪計算量はO(n·m)となります。
KMP
不一致が起きても、これまで一致した部分の情報を使い、無駄な再比較を回避します。パターンの自己分析(LPS表)を事前に行うことで、O(n+m)の高速な探索を実現します。
Boyer-Moore
パターンを末尾から比較し、不一致が起きると、その文字情報を使ってパターンを大きく右へシフトさせます。実用上、非常に高速なアルゴリズムとして知られています。