Suffix Array
新しいアルゴリズムを学んだので自分用の備忘録.
Suffix Arrayとは
- 日本語では接尾辞配列
- ある文字列の全ての接尾辞を辞書順に並べたもの
- 例えば “coder” という文字列について考える
接尾辞は “coder”, “oder”, “der” “er”, “r”, “”
接尾辞配列は以下の通り
開始位置 | 接尾辞 |
---|---|
5 | |
0 | coder |
2 | der |
3 | er |
1 | oder |
4 | r |
- Suffix Arrayを使うと,長さnの文字列の中から長さmの文字列を[latex]\mathcal{O}(m\log{n})[/latex]で探索したりできる
- 競技プログラミングでもよく使うらしい (僕はまだ2問しか見たことない)
Suffix Arrayの構築
- 愚直に構築することを考える
- その他の方法
今回はManber&Myersについて学ぶことにする