Algorithm Race

文字列を変化させて目的のアルゴリズムを勝利させてください。

アルゴリズム選択

アルゴリズム解説

Naive Search

テキストの先頭からパターンを1文字ずつ比較し、不一致なら1文字右へシフトして再比較します。実装が簡単ですが、最悪計算量はO(n·m)となります。

KMP

不一致が起きても、これまで一致した部分の情報を使い、無駄な再比較を回避します。パターンの自己分析(LPS表)を事前に行うことで、O(n+m)の高速な探索を実現します。

Boyer-Moore

パターンを末尾から比較し、不一致が起きると、その文字情報を使ってパターンを大きく右へシフトさせます。実用上、非常に高速なアルゴリズムとして知られています。