C/C++の宿題を片付けます 44代目

このエントリーをはてなブックマークに追加
777デフォルトの名無しさん
まず,pattern に対して以下のように情報を収集して next[i] (1 ≦ i ≦ pattern_len) という配列を作る:

1 ≦ i ≦ pattern_len に対して,0 ≦ j ≦ i - 2 の範囲で j を動かして,pattern[0] 〜 pattern[j] と pattern[i - 1 - j] 〜 pattern[i - 1] が完全に一致するようなできるだけ大きい j を選んで,next[i] = j + 1とする.


そのような j が無いときは,next[i] = 0 とする.



KMP法のテーブル表を作るんだけど教えてください