|
ボイヤー-ムーア文字列検索アルゴリズム(Boyer-Moore String Search Algorithm)は、効率的な文字列検索アルゴリズムの一種〔Hume and Sunday (1991) ''String Searching '' SOFTWARE—PRACTICE AND EXPERIENCE, VOL. 21(11), 1221–1248 (NOVEMBER 1991)〕。Robert S. Boyer と J Strother Moore が 1977年に開発した。ボイヤー-ムーア法とも呼ばれる。 このアルゴリズムでは検索文字列(パターン)の前処理を行い、検索対象テキストの前処理は行わない。したがって、テキストについて何度も検索を行わない場合に適している(他のアルゴリズムではテキスト側に前処理を施し、繰り返し検索を行うことで前処理のコストを償却する)。テキスト上の全文字をチェックする必要はなく、前処理で得た情報を活用してスキップしながら処理していく。一般にパターン文字列が長いほど検索が高速化される。検索文字列とテキストの間での不一致が発生するたびに、不一致であったという情報を最大限に利用して照合しなくてもいい位置を可能な限り排除することで、効率を向上させている。 == 定義 == * ''S'' は、文字列 ''S'' の ''i'' 番目の文字を指す。先頭は 1 である。 * ''S'' は、文字列 ''S'' の ''i'' 番目から ''j'' 番目までを含む部分文字列を指す。 * ''S'' のプレフィックスとは、文字列 ''S'' の長さを ''n'' としたとき、''n '' の範囲にある ''i'' を使って表される ''S'' という部分文字列を指す。 * ''S'' のサフィックスとは、文字列 ''S'' の長さを ''n'' としたとき、''n '' の範囲にある ''i'' を使って表される ''S'' という部分文字列を指す。 * 検索文字列を「パターン」と呼ぶ。 * 検索対象文書を「テキスト」と呼ぶ。 * パターンは ''P'' で表される。 * テキストは ''T'' で表される。 * ''P'' の長さを ''n'' とする。 * ''T'' の長さを ''m'' とする。 * ''P'' の最後尾の文字が ''T'' の先頭から ''k'' 番目の位置になるよう配置したとき、''k'' を ''T'' に対する ''P'' の「位置」とする。 * ''P'' の一致または出現とは、配置した ''P'' と ''T'' が等価である場合をいう。'S'' は、文字列 ''S'' の ''i'' 番目の文字を指す。先頭は 1 である。 * ''S'' は、文字列 ''S'' の ''i'' 番目から ''j'' 番目までを含む部分文字列を指す。 * ''S'' のプレフィックスとは、文字列 ''S'' の長さを ''n'' としたとき、''n '' の範囲にある ''i'' を使って表される ''S'' という部分文字列を指す。 * ''S'' のサフィックスとは、文字列 ''S'' の長さを ''n'' としたとき、''n '' の範囲にある ''i'' を使って表される ''S'' という部分文字列を指す。 * 検索文字列を「パターン」と呼ぶ。 * 検索対象文書を「テキスト」と呼ぶ。 * パターンは ''P'' で表される。 * テキストは ''T'' で表される。 * ''P'' の長さを ''n'' とする。 * ''T'' の長さを ''m'' とする。 * ''P'' の最後尾の文字が ''T'' の先頭から ''k'' 番目の位置になるよう配置したとき、''k'' を ''T'' に対する ''P'' の「位置」とする。 * ''P'' の一致または出現とは、配置した ''P'' と ''T'' が等価である場合をいう。' は、文字列 ''S'' の ''i'' 番目の文字を指す。先頭は 1 である。 * ''S'' は、文字列 ''S'' の ''i'' 番目から ''j'' 番目までを含む部分文字列を指す。 * ''S'' のプレフィックスとは、文字列 ''S'' の長さを ''n'' としたとき、''n '' の範囲にある ''i'' を使って表される ''S'' という部分文字列を指す。 * ''S'' のサフィックスとは、文字列 ''S'' の長さを ''n'' としたとき、''n '' の範囲にある ''i'' を使って表される ''S'' という部分文字列を指す。 * 検索文字列を「パターン」と呼ぶ。 * 検索対象文書を「テキスト」と呼ぶ。 * パターンは ''P'' で表される。 * テキストは ''T'' で表される。 * ''P'' の長さを ''n'' とする。 * ''T'' の長さを ''m'' とする。 * ''P'' の最後尾の文字が ''T'' の先頭から ''k'' 番目の位置になるよう配置したとき、''k'' を ''T'' に対する ''P'' の「位置」とする。 * ''P'' の一致または出現とは、配置した ''P'' と ''T'' が等価である場合をいう。'S'' の ''i'' 番目の文字を指す。先頭は 1 である。 * ''S'' は、文字列 ''S'' の ''i'' 番目から ''j'' 番目までを含む部分文字列を指す。 * ''S'' のプレフィックスとは、文字列 ''S'' の長さを ''n'' としたとき、''n '' の範囲にある ''i'' を使って表される ''S'' という部分文字列を指す。 * ''S'' のサフィックスとは、文字列 ''S'' の長さを ''n'' としたとき、''n '' の範囲にある ''i'' を使って表される ''S'' という部分文字列を指す。 * 検索文字列を「パターン」と呼ぶ。 * 検索対象文書を「テキスト」と呼ぶ。 * パターンは ''P'' で表される。 * テキストは ''T'' で表される。 * ''P'' の長さを ''n'' とする。 * ''T'' の長さを ''m'' とする。 * ''P'' の最後尾の文字が ''T'' の先頭から ''k'' 番目の位置になるよう配置したとき、''k'' を ''T'' に対する ''P'' の「位置」とする。 * ''P'' の一致または出現とは、配置した ''P'' と ''T'' が等価である場合をいう。' の ''i'' 番目の文字を指す。先頭は 1 である。 * ''S'' は、文字列 ''S'' の ''i'' 番目から ''j'' 番目までを含む部分文字列を指す。 * ''S'' のプレフィックスとは、文字列 ''S'' の長さを ''n'' としたとき、''n '' の範囲にある ''i'' を使って表される ''S'' という部分文字列を指す。 * ''S'' のサフィックスとは、文字列 ''S'' の長さを ''n'' としたとき、''n '' の範囲にある ''i'' を使って表される ''S'' という部分文字列を指す。 * 検索文字列を「パターン」と呼ぶ。 * 検索対象文書を「テキスト」と呼ぶ。 * パターンは ''P'' で表される。 * テキストは ''T'' で表される。 * ''P'' の長さを ''n'' とする。 * ''T'' の長さを ''m'' とする。 * ''P'' の最後尾の文字が ''T'' の先頭から ''k'' 番目の位置になるよう配置したとき、''k'' を ''T'' に対する ''P'' の「位置」とする。 * ''P'' の一致または出現とは、配置した ''P'' と ''T'' が等価である場合をいう。'i'' 番目の文字を指す。先頭は 1 である。 * ''S'' は、文字列 ''S'' の ''i'' 番目から ''j'' 番目までを含む部分文字列を指す。 * ''S'' のプレフィックスとは、文字列 ''S'' の長さを ''n'' としたとき、''n '' の範囲にある ''i'' を使って表される ''S'' という部分文字列を指す。 * ''S'' のサフィックスとは、文字列 ''S'' の長さを ''n'' としたとき、''n '' の範囲にある ''i'' を使って表される ''S'' という部分文字列を指す。 * 検索文字列を「パターン」と呼ぶ。 * 検索対象文書を「テキスト」と呼ぶ。 * パターンは ''P'' で表される。 * テキストは ''T'' で表される。 * ''P'' の長さを ''n'' とする。 * ''T'' の長さを ''m'' とする。 * ''P'' の最後尾の文字が ''T'' の先頭から ''k'' 番目の位置になるよう配置したとき、''k'' を ''T'' に対する ''P'' の「位置」とする。 * ''P'' の一致または出現とは、配置した ''P'' と ''T'' が等価である場合をいう。' 番目の文字を指す。先頭は 1 である。 * ''S'' は、文字列 ''S'' の ''i'' 番目から ''j'' 番目までを含む部分文字列を指す。 * ''S'' のプレフィックスとは、文字列 ''S'' の長さを ''n'' としたとき、''n '' の範囲にある ''i'' を使って表される ''S'' という部分文字列を指す。 * ''S'' のサフィックスとは、文字列 ''S'' の長さを ''n'' としたとき、''n '' の範囲にある ''i'' を使って表される ''S'' という部分文字列を指す。 * 検索文字列を「パターン」と呼ぶ。 * 検索対象文書を「テキスト」と呼ぶ。 * パターンは ''P'' で表される。 * テキストは ''T'' で表される。 * ''P'' の長さを ''n'' とする。 * ''T'' の長さを ''m'' とする。 * ''P'' の最後尾の文字が ''T'' の先頭から ''k'' 番目の位置になるよう配置したとき、''k'' を ''T'' に対する ''P'' の「位置」とする。 * ''P'' の一致または出現とは、配置した ''P'' と ''T'' が等価である場合をいう。'S'' は、文字列 ''S'' の ''i'' 番目から ''j'' 番目までを含む部分文字列を指す。 * ''S'' のプレフィックスとは、文字列 ''S'' の長さを ''n'' としたとき、''n '' の範囲にある ''i'' を使って表される ''S'' という部分文字列を指す。 * ''S'' のサフィックスとは、文字列 ''S'' の長さを ''n'' としたとき、''n '' の範囲にある ''i'' を使って表される ''S'' という部分文字列を指す。 * 検索文字列を「パターン」と呼ぶ。 * 検索対象文書を「テキスト」と呼ぶ。 * パターンは ''P'' で表される。 * テキストは ''T'' で表される。 * ''P'' の長さを ''n'' とする。 * ''T'' の長さを ''m'' とする。 * ''P'' の最後尾の文字が ''T'' の先頭から ''k'' 番目の位置になるよう配置したとき、''k'' を ''T'' に対する ''P'' の「位置」とする。 * ''P'' の一致または出現とは、配置した ''P'' と ''T'' が等価である場合をいう。' は、文字列 ''S'' の ''i'' 番目から ''j'' 番目までを含む部分文字列を指す。 * ''S'' のプレフィックスとは、文字列 ''S'' の長さを ''n'' としたとき、''n '' の範囲にある ''i'' を使って表される ''S'' という部分文字列を指す。 * ''S'' のサフィックスとは、文字列 ''S'' の長さを ''n'' としたとき、''n '' の範囲にある ''i'' を使って表される ''S'' という部分文字列を指す。 * 検索文字列を「パターン」と呼ぶ。 * 検索対象文書を「テキスト」と呼ぶ。 * パターンは ''P'' で表される。 * テキストは ''T'' で表される。 * ''P'' の長さを ''n'' とする。 * ''T'' の長さを ''m'' とする。 * ''P'' の最後尾の文字が ''T'' の先頭から ''k'' 番目の位置になるよう配置したとき、''k'' を ''T'' に対する ''P'' の「位置」とする。 * ''P'' の一致または出現とは、配置した ''P'' と ''T'' が等価である場合をいう。'S'' の ''i'' 番目から ''j'' 番目までを含む部分文字列を指す。 * ''S'' のプレフィックスとは、文字列 ''S'' の長さを ''n'' としたとき、''n '' の範囲にある ''i'' を使って表される ''S'' という部分文字列を指す。 * ''S'' のサフィックスとは、文字列 ''S'' の長さを ''n'' としたとき、''n '' の範囲にある ''i'' を使って表される ''S'' という部分文字列を指す。 * 検索文字列を「パターン」と呼ぶ。 * 検索対象文書を「テキスト」と呼ぶ。 * パターンは ''P'' で表される。 * テキストは ''T'' で表される。 * ''P'' の長さを ''n'' とする。 * ''T'' の長さを ''m'' とする。 * ''P'' の最後尾の文字が ''T'' の先頭から ''k'' 番目の位置になるよう配置したとき、''k'' を ''T'' に対する ''P'' の「位置」とする。 * ''P'' の一致または出現とは、配置した ''P'' と ''T'' が等価である場合をいう。' の ''i'' 番目から ''j'' 番目までを含む部分文字列を指す。 * ''S'' のプレフィックスとは、文字列 ''S'' の長さを ''n'' としたとき、''n '' の範囲にある ''i'' を使って表される ''S'' という部分文字列を指す。 * ''S'' のサフィックスとは、文字列 ''S'' の長さを ''n'' としたとき、''n '' の範囲にある ''i'' を使って表される ''S'' という部分文字列を指す。 * 検索文字列を「パターン」と呼ぶ。 * 検索対象文書を「テキスト」と呼ぶ。 * パターンは ''P'' で表される。 * テキストは ''T'' で表される。 * ''P'' の長さを ''n'' とする。 * ''T'' の長さを ''m'' とする。 * ''P'' の最後尾の文字が ''T'' の先頭から ''k'' 番目の位置になるよう配置したとき、''k'' を ''T'' に対する ''P'' の「位置」とする。 * ''P'' の一致または出現とは、配置した ''P'' と ''T'' が等価である場合をいう。'i'' 番目から ''j'' 番目までを含む部分文字列を指す。 * ''S'' のプレフィックスとは、文字列 ''S'' の長さを ''n'' としたとき、''n '' の範囲にある ''i'' を使って表される ''S'' という部分文字列を指す。 * ''S'' のサフィックスとは、文字列 ''S'' の長さを ''n'' としたとき、''n '' の範囲にある ''i'' を使って表される ''S'' という部分文字列を指す。 * 検索文字列を「パターン」と呼ぶ。 * 検索対象文書を「テキスト」と呼ぶ。 * パターンは ''P'' で表される。 * テキストは ''T'' で表される。 * ''P'' の長さを ''n'' とする。 * ''T'' の長さを ''m'' とする。 * ''P'' の最後尾の文字が ''T'' の先頭から ''k'' 番目の位置になるよう配置したとき、''k'' を ''T'' に対する ''P'' の「位置」とする。 * ''P'' の一致または出現とは、配置した ''P'' と ''T'' が等価である場合をいう。' 番目から ''j'' 番目までを含む部分文字列を指す。 * ''S'' のプレフィックスとは、文字列 ''S'' の長さを ''n'' としたとき、''n '' の範囲にある ''i'' を使って表される ''S'' という部分文字列を指す。 * ''S'' のサフィックスとは、文字列 ''S'' の長さを ''n'' としたとき、''n '' の範囲にある ''i'' を使って表される ''S'' という部分文字列を指す。 * 検索文字列を「パターン」と呼ぶ。 * 検索対象文書を「テキスト」と呼ぶ。 * パターンは ''P'' で表される。 * テキストは ''T'' で表される。 * ''P'' の長さを ''n'' とする。 * ''T'' の長さを ''m'' とする。 * ''P'' の最後尾の文字が ''T'' の先頭から ''k'' 番目の位置になるよう配置したとき、''k'' を ''T'' に対する ''P'' の「位置」とする。 * ''P'' の一致または出現とは、配置した ''P'' と ''T'' が等価である場合をいう。'j'' 番目までを含む部分文字列を指す。 * ''S'' のプレフィックスとは、文字列 ''S'' の長さを ''n'' としたとき、''n '' の範囲にある ''i'' を使って表される ''S'' という部分文字列を指す。 * ''S'' のサフィックスとは、文字列 ''S'' の長さを ''n'' としたとき、''n '' の範囲にある ''i'' を使って表される ''S'' という部分文字列を指す。 * 検索文字列を「パターン」と呼ぶ。 * 検索対象文書を「テキスト」と呼ぶ。 * パターンは ''P'' で表される。 * テキストは ''T'' で表される。 * ''P'' の長さを ''n'' とする。 * ''T'' の長さを ''m'' とする。 * ''P'' の最後尾の文字が ''T'' の先頭から ''k'' 番目の位置になるよう配置したとき、''k'' を ''T'' に対する ''P'' の「位置」とする。 * ''P'' の一致または出現とは、配置した ''P'' と ''T'' が等価である場合をいう。' 番目までを含む部分文字列を指す。 * ''S'' のプレフィックスとは、文字列 ''S'' の長さを ''n'' としたとき、''n '' の範囲にある ''i'' を使って表される ''S'' という部分文字列を指す。 * ''S'' のサフィックスとは、文字列 ''S'' の長さを ''n'' としたとき、''n '' の範囲にある ''i'' を使って表される ''S'' という部分文字列を指す。 * 検索文字列を「パターン」と呼ぶ。 * 検索対象文書を「テキスト」と呼ぶ。 * パターンは ''P'' で表される。 * テキストは ''T'' で表される。 * ''P'' の長さを ''n'' とする。 * ''T'' の長さを ''m'' とする。 * ''P'' の最後尾の文字が ''T'' の先頭から ''k'' 番目の位置になるよう配置したとき、''k'' を ''T'' に対する ''P'' の「位置」とする。 * ''P'' の一致または出現とは、配置した ''P'' と ''T'' が等価である場合をいう。'S'' のプレフィックスとは、文字列 ''S'' の長さを ''n'' としたとき、''n '' の範囲にある ''i'' を使って表される ''S'' という部分文字列を指す。 * ''S'' のサフィックスとは、文字列 ''S'' の長さを ''n'' としたとき、''n '' の範囲にある ''i'' を使って表される ''S'' という部分文字列を指す。 * 検索文字列を「パターン」と呼ぶ。 * 検索対象文書を「テキスト」と呼ぶ。 * パターンは ''P'' で表される。 * テキストは ''T'' で表される。 * ''P'' の長さを ''n'' とする。 * ''T'' の長さを ''m'' とする。 * ''P'' の最後尾の文字が ''T'' の先頭から ''k'' 番目の位置になるよう配置したとき、''k'' を ''T'' に対する ''P'' の「位置」とする。 * ''P'' の一致または出現とは、配置した ''P'' と ''T'' が等価である場合をいう。' のプレフィックスとは、文字列 ''S'' の長さを ''n'' としたとき、''n '' の範囲にある ''i'' を使って表される ''S'' という部分文字列を指す。 * ''S'' のサフィックスとは、文字列 ''S'' の長さを ''n'' としたとき、''n '' の範囲にある ''i'' を使って表される ''S'' という部分文字列を指す。 * 検索文字列を「パターン」と呼ぶ。 * 検索対象文書を「テキスト」と呼ぶ。 * パターンは ''P'' で表される。 * テキストは ''T'' で表される。 * ''P'' の長さを ''n'' とする。 * ''T'' の長さを ''m'' とする。 * ''P'' の最後尾の文字が ''T'' の先頭から ''k'' 番目の位置になるよう配置したとき、''k'' を ''T'' に対する ''P'' の「位置」とする。 * ''P'' の一致または出現とは、配置した ''P'' と ''T'' が等価である場合をいう。'S'' の長さを ''n'' としたとき、''n '' の範囲にある ''i'' を使って表される ''S'' という部分文字列を指す。 * ''S'' のサフィックスとは、文字列 ''S'' の長さを ''n'' としたとき、''n '' の範囲にある ''i'' を使って表される ''S'' という部分文字列を指す。 * 検索文字列を「パターン」と呼ぶ。 * 検索対象文書を「テキスト」と呼ぶ。 * パターンは ''P'' で表される。 * テキストは ''T'' で表される。 * ''P'' の長さを ''n'' とする。 * ''T'' の長さを ''m'' とする。 * ''P'' の最後尾の文字が ''T'' の先頭から ''k'' 番目の位置になるよう配置したとき、''k'' を ''T'' に対する ''P'' の「位置」とする。 * ''P'' の一致または出現とは、配置した ''P'' と ''T'' が等価である場合をいう。' の長さを ''n'' としたとき、''n '' の範囲にある ''i'' を使って表される ''S'' という部分文字列を指す。 * ''S'' のサフィックスとは、文字列 ''S'' の長さを ''n'' としたとき、''n '' の範囲にある ''i'' を使って表される ''S'' という部分文字列を指す。 * 検索文字列を「パターン」と呼ぶ。 * 検索対象文書を「テキスト」と呼ぶ。 * パターンは ''P'' で表される。 * テキストは ''T'' で表される。 * ''P'' の長さを ''n'' とする。 * ''T'' の長さを ''m'' とする。 * ''P'' の最後尾の文字が ''T'' の先頭から ''k'' 番目の位置になるよう配置したとき、''k'' を ''T'' に対する ''P'' の「位置」とする。 * ''P'' の一致または出現とは、配置した ''P'' と ''T'' が等価である場合をいう。'n'' としたとき、''n '' の範囲にある ''i'' を使って表される ''S'' という部分文字列を指す。 * ''S'' のサフィックスとは、文字列 ''S'' の長さを ''n'' としたとき、''n '' の範囲にある ''i'' を使って表される ''S'' という部分文字列を指す。 * 検索文字列を「パターン」と呼ぶ。 * 検索対象文書を「テキスト」と呼ぶ。 * パターンは ''P'' で表される。 * テキストは ''T'' で表される。 * ''P'' の長さを ''n'' とする。 * ''T'' の長さを ''m'' とする。 * ''P'' の最後尾の文字が ''T'' の先頭から ''k'' 番目の位置になるよう配置したとき、''k'' を ''T'' に対する ''P'' の「位置」とする。 * ''P'' の一致または出現とは、配置した ''P'' と ''T'' が等価である場合をいう。' としたとき、''n '' の範囲にある ''i'' を使って表される ''S'' という部分文字列を指す。 * ''S'' のサフィックスとは、文字列 ''S'' の長さを ''n'' としたとき、''n '' の範囲にある ''i'' を使って表される ''S'' という部分文字列を指す。 * 検索文字列を「パターン」と呼ぶ。 * 検索対象文書を「テキスト」と呼ぶ。 * パターンは ''P'' で表される。 * テキストは ''T'' で表される。 * ''P'' の長さを ''n'' とする。 * ''T'' の長さを ''m'' とする。 * ''P'' の最後尾の文字が ''T'' の先頭から ''k'' 番目の位置になるよう配置したとき、''k'' を ''T'' に対する ''P'' の「位置」とする。 * ''P'' の一致または出現とは、配置した ''P'' と ''T'' が等価である場合をいう。'n '' の範囲にある ''i'' を使って表される ''S'' という部分文字列を指す。 * ''S'' のサフィックスとは、文字列 ''S'' の長さを ''n'' としたとき、''n '' の範囲にある ''i'' を使って表される ''S'' という部分文字列を指す。 * 検索文字列を「パターン」と呼ぶ。 * 検索対象文書を「テキスト」と呼ぶ。 * パターンは ''P'' で表される。 * テキストは ''T'' で表される。 * ''P'' の長さを ''n'' とする。 * ''T'' の長さを ''m'' とする。 * ''P'' の最後尾の文字が ''T'' の先頭から ''k'' 番目の位置になるよう配置したとき、''k'' を ''T'' に対する ''P'' の「位置」とする。 * ''P'' の一致または出現とは、配置した ''P'' と ''T'' が等価である場合をいう。' の範囲にある ''i'' を使って表される ''S'' という部分文字列を指す。 * ''S'' のサフィックスとは、文字列 ''S'' の長さを ''n'' としたとき、''n '' の範囲にある ''i'' を使って表される ''S'' という部分文字列を指す。 * 検索文字列を「パターン」と呼ぶ。 * 検索対象文書を「テキスト」と呼ぶ。 * パターンは ''P'' で表される。 * テキストは ''T'' で表される。 * ''P'' の長さを ''n'' とする。 * ''T'' の長さを ''m'' とする。 * ''P'' の最後尾の文字が ''T'' の先頭から ''k'' 番目の位置になるよう配置したとき、''k'' を ''T'' に対する ''P'' の「位置」とする。 * ''P'' の一致または出現とは、配置した ''P'' と ''T'' が等価である場合をいう。'i'' を使って表される ''S'' という部分文字列を指す。 * ''S'' のサフィックスとは、文字列 ''S'' の長さを ''n'' としたとき、''n '' の範囲にある ''i'' を使って表される ''S'' という部分文字列を指す。 * 検索文字列を「パターン」と呼ぶ。 * 検索対象文書を「テキスト」と呼ぶ。 * パターンは ''P'' で表される。 * テキストは ''T'' で表される。 * ''P'' の長さを ''n'' とする。 * ''T'' の長さを ''m'' とする。 * ''P'' の最後尾の文字が ''T'' の先頭から ''k'' 番目の位置になるよう配置したとき、''k'' を ''T'' に対する ''P'' の「位置」とする。 * ''P'' の一致または出現とは、配置した ''P'' と ''T'' が等価である場合をいう。' を使って表される ''S'' という部分文字列を指す。 * ''S'' のサフィックスとは、文字列 ''S'' の長さを ''n'' としたとき、''n '' の範囲にある ''i'' を使って表される ''S'' という部分文字列を指す。 * 検索文字列を「パターン」と呼ぶ。 * 検索対象文書を「テキスト」と呼ぶ。 * パターンは ''P'' で表される。 * テキストは ''T'' で表される。 * ''P'' の長さを ''n'' とする。 * ''T'' の長さを ''m'' とする。 * ''P'' の最後尾の文字が ''T'' の先頭から ''k'' 番目の位置になるよう配置したとき、''k'' を ''T'' に対する ''P'' の「位置」とする。 * ''P'' の一致または出現とは、配置した ''P'' と ''T'' が等価である場合をいう。'S'' という部分文字列を指す。 * ''S'' のサフィックスとは、文字列 ''S'' の長さを ''n'' としたとき、''n '' の範囲にある ''i'' を使って表される ''S'' という部分文字列を指す。 * 検索文字列を「パターン」と呼ぶ。 * 検索対象文書を「テキスト」と呼ぶ。 * パターンは ''P'' で表される。 * テキストは ''T'' で表される。 * ''P'' の長さを ''n'' とする。 * ''T'' の長さを ''m'' とする。 * ''P'' の最後尾の文字が ''T'' の先頭から ''k'' 番目の位置になるよう配置したとき、''k'' を ''T'' に対する ''P'' の「位置」とする。 * ''P'' の一致または出現とは、配置した ''P'' と ''T'' が等価である場合をいう。' という部分文字列を指す。 * ''S'' のサフィックスとは、文字列 ''S'' の長さを ''n'' としたとき、''n '' の範囲にある ''i'' を使って表される ''S'' という部分文字列を指す。 * 検索文字列を「パターン」と呼ぶ。 * 検索対象文書を「テキスト」と呼ぶ。 * パターンは ''P'' で表される。 * テキストは ''T'' で表される。 * ''P'' の長さを ''n'' とする。 * ''T'' の長さを ''m'' とする。 * ''P'' の最後尾の文字が ''T'' の先頭から ''k'' 番目の位置になるよう配置したとき、''k'' を ''T'' に対する ''P'' の「位置」とする。 * ''P'' の一致または出現とは、配置した ''P'' と ''T'' が等価である場合をいう。'S'' のサフィックスとは、文字列 ''S'' の長さを ''n'' としたとき、''n '' の範囲にある ''i'' を使って表される ''S'' という部分文字列を指す。 * 検索文字列を「パターン」と呼ぶ。 * 検索対象文書を「テキスト」と呼ぶ。 * パターンは ''P'' で表される。 * テキストは ''T'' で表される。 * ''P'' の長さを ''n'' とする。 * ''T'' の長さを ''m'' とする。 * ''P'' の最後尾の文字が ''T'' の先頭から ''k'' 番目の位置になるよう配置したとき、''k'' を ''T'' に対する ''P'' の「位置」とする。 * ''P'' の一致または出現とは、配置した ''P'' と ''T'' が等価である場合をいう。' のサフィックスとは、文字列 ''S'' の長さを ''n'' としたとき、''n '' の範囲にある ''i'' を使って表される ''S'' という部分文字列を指す。 * 検索文字列を「パターン」と呼ぶ。 * 検索対象文書を「テキスト」と呼ぶ。 * パターンは ''P'' で表される。 * テキストは ''T'' で表される。 * ''P'' の長さを ''n'' とする。 * ''T'' の長さを ''m'' とする。 * ''P'' の最後尾の文字が ''T'' の先頭から ''k'' 番目の位置になるよう配置したとき、''k'' を ''T'' に対する ''P'' の「位置」とする。 * ''P'' の一致または出現とは、配置した ''P'' と ''T'' が等価である場合をいう。'S'' の長さを ''n'' としたとき、''n '' の範囲にある ''i'' を使って表される ''S'' という部分文字列を指す。 * 検索文字列を「パターン」と呼ぶ。 * 検索対象文書を「テキスト」と呼ぶ。 * パターンは ''P'' で表される。 * テキストは ''T'' で表される。 * ''P'' の長さを ''n'' とする。 * ''T'' の長さを ''m'' とする。 * ''P'' の最後尾の文字が ''T'' の先頭から ''k'' 番目の位置になるよう配置したとき、''k'' を ''T'' に対する ''P'' の「位置」とする。 * ''P'' の一致または出現とは、配置した ''P'' と ''T'' が等価である場合をいう。' の長さを ''n'' としたとき、''n '' の範囲にある ''i'' を使って表される ''S'' という部分文字列を指す。 * 検索文字列を「パターン」と呼ぶ。 * 検索対象文書を「テキスト」と呼ぶ。 * パターンは ''P'' で表される。 * テキストは ''T'' で表される。 * ''P'' の長さを ''n'' とする。 * ''T'' の長さを ''m'' とする。 * ''P'' の最後尾の文字が ''T'' の先頭から ''k'' 番目の位置になるよう配置したとき、''k'' を ''T'' に対する ''P'' の「位置」とする。 * ''P'' の一致または出現とは、配置した ''P'' と ''T'' が等価である場合をいう。'n'' としたとき、''n '' の範囲にある ''i'' を使って表される ''S'' という部分文字列を指す。 * 検索文字列を「パターン」と呼ぶ。 * 検索対象文書を「テキスト」と呼ぶ。 * パターンは ''P'' で表される。 * テキストは ''T'' で表される。 * ''P'' の長さを ''n'' とする。 * ''T'' の長さを ''m'' とする。 * ''P'' の最後尾の文字が ''T'' の先頭から ''k'' 番目の位置になるよう配置したとき、''k'' を ''T'' に対する ''P'' の「位置」とする。 * ''P'' の一致または出現とは、配置した ''P'' と ''T'' が等価である場合をいう。' としたとき、''n '' の範囲にある ''i'' を使って表される ''S'' という部分文字列を指す。 * 検索文字列を「パターン」と呼ぶ。 * 検索対象文書を「テキスト」と呼ぶ。 * パターンは ''P'' で表される。 * テキストは ''T'' で表される。 * ''P'' の長さを ''n'' とする。 * ''T'' の長さを ''m'' とする。 * ''P'' の最後尾の文字が ''T'' の先頭から ''k'' 番目の位置になるよう配置したとき、''k'' を ''T'' に対する ''P'' の「位置」とする。 * ''P'' の一致または出現とは、配置した ''P'' と ''T'' が等価である場合をいう。'n '' の範囲にある ''i'' を使って表される ''S'' という部分文字列を指す。 * 検索文字列を「パターン」と呼ぶ。 * 検索対象文書を「テキスト」と呼ぶ。 * パターンは ''P'' で表される。 * テキストは ''T'' で表される。 * ''P'' の長さを ''n'' とする。 * ''T'' の長さを ''m'' とする。 * ''P'' の最後尾の文字が ''T'' の先頭から ''k'' 番目の位置になるよう配置したとき、''k'' を ''T'' に対する ''P'' の「位置」とする。 * ''P'' の一致または出現とは、配置した ''P'' と ''T'' が等価である場合をいう。' の範囲にある ''i'' を使って表される ''S'' という部分文字列を指す。 * 検索文字列を「パターン」と呼ぶ。 * 検索対象文書を「テキスト」と呼ぶ。 * パターンは ''P'' で表される。 * テキストは ''T'' で表される。 * ''P'' の長さを ''n'' とする。 * ''T'' の長さを ''m'' とする。 * ''P'' の最後尾の文字が ''T'' の先頭から ''k'' 番目の位置になるよう配置したとき、''k'' を ''T'' に対する ''P'' の「位置」とする。 * ''P'' の一致または出現とは、配置した ''P'' と ''T'' が等価である場合をいう。'i'' を使って表される ''S'' という部分文字列を指す。 * 検索文字列を「パターン」と呼ぶ。 * 検索対象文書を「テキスト」と呼ぶ。 * パターンは ''P'' で表される。 * テキストは ''T'' で表される。 * ''P'' の長さを ''n'' とする。 * ''T'' の長さを ''m'' とする。 * ''P'' の最後尾の文字が ''T'' の先頭から ''k'' 番目の位置になるよう配置したとき、''k'' を ''T'' に対する ''P'' の「位置」とする。 * ''P'' の一致または出現とは、配置した ''P'' と ''T'' が等価である場合をいう。' を使って表される ''S'' という部分文字列を指す。 * 検索文字列を「パターン」と呼ぶ。 * 検索対象文書を「テキスト」と呼ぶ。 * パターンは ''P'' で表される。 * テキストは ''T'' で表される。 * ''P'' の長さを ''n'' とする。 * ''T'' の長さを ''m'' とする。 * ''P'' の最後尾の文字が ''T'' の先頭から ''k'' 番目の位置になるよう配置したとき、''k'' を ''T'' に対する ''P'' の「位置」とする。 * ''P'' の一致または出現とは、配置した ''P'' と ''T'' が等価である場合をいう。'S'' という部分文字列を指す。 * 検索文字列を「パターン」と呼ぶ。 * 検索対象文書を「テキスト」と呼ぶ。 * パターンは ''P'' で表される。 * テキストは ''T'' で表される。 * ''P'' の長さを ''n'' とする。 * ''T'' の長さを ''m'' とする。 * ''P'' の最後尾の文字が ''T'' の先頭から ''k'' 番目の位置になるよう配置したとき、''k'' を ''T'' に対する ''P'' の「位置」とする。 * ''P'' の一致または出現とは、配置した ''P'' と ''T'' が等価である場合をいう。' という部分文字列を指す。 * 検索文字列を「パターン」と呼ぶ。 * 検索対象文書を「テキスト」と呼ぶ。 * パターンは ''P'' で表される。 * テキストは ''T'' で表される。 * ''P'' の長さを ''n'' とする。 * ''T'' の長さを ''m'' とする。 * ''P'' の最後尾の文字が ''T'' の先頭から ''k'' 番目の位置になるよう配置したとき、''k'' を ''T'' に対する ''P'' の「位置」とする。 * ''P'' の一致または出現とは、配置した ''P'' と ''T'' が等価である場合をいう。'P'' で表される。 * テキストは ''T'' で表される。 * ''P'' の長さを ''n'' とする。 * ''T'' の長さを ''m'' とする。 * ''P'' の最後尾の文字が ''T'' の先頭から ''k'' 番目の位置になるよう配置したとき、''k'' を ''T'' に対する ''P'' の「位置」とする。 * ''P'' の一致または出現とは、配置した ''P'' と ''T'' が等価である場合をいう。' で表される。 * テキストは ''T'' で表される。 * ''P'' の長さを ''n'' とする。 * ''T'' の長さを ''m'' とする。 * ''P'' の最後尾の文字が ''T'' の先頭から ''k'' 番目の位置になるよう配置したとき、''k'' を ''T'' に対する ''P'' の「位置」とする。 * ''P'' の一致または出現とは、配置した ''P'' と ''T'' が等価である場合をいう。'T'' で表される。 * ''P'' の長さを ''n'' とする。 * ''T'' の長さを ''m'' とする。 * ''P'' の最後尾の文字が ''T'' の先頭から ''k'' 番目の位置になるよう配置したとき、''k'' を ''T'' に対する ''P'' の「位置」とする。 * ''P'' の一致または出現とは、配置した ''P'' と ''T'' が等価である場合をいう。' で表される。 * ''P'' の長さを ''n'' とする。 * ''T'' の長さを ''m'' とする。 * ''P'' の最後尾の文字が ''T'' の先頭から ''k'' 番目の位置になるよう配置したとき、''k'' を ''T'' に対する ''P'' の「位置」とする。 * ''P'' の一致または出現とは、配置した ''P'' と ''T'' が等価である場合をいう。'P'' の長さを ''n'' とする。 * ''T'' の長さを ''m'' とする。 * ''P'' の最後尾の文字が ''T'' の先頭から ''k'' 番目の位置になるよう配置したとき、''k'' を ''T'' に対する ''P'' の「位置」とする。 * ''P'' の一致または出現とは、配置した ''P'' と ''T'' が等価である場合をいう。' の長さを ''n'' とする。 * ''T'' の長さを ''m'' とする。 * ''P'' の最後尾の文字が ''T'' の先頭から ''k'' 番目の位置になるよう配置したとき、''k'' を ''T'' に対する ''P'' の「位置」とする。 * ''P'' の一致または出現とは、配置した ''P'' と ''T'' が等価である場合をいう。'n'' とする。 * ''T'' の長さを ''m'' とする。 * ''P'' の最後尾の文字が ''T'' の先頭から ''k'' 番目の位置になるよう配置したとき、''k'' を ''T'' に対する ''P'' の「位置」とする。 * ''P'' の一致または出現とは、配置した ''P'' と ''T'' が等価である場合をいう。' とする。 * ''T'' の長さを ''m'' とする。 * ''P'' の最後尾の文字が ''T'' の先頭から ''k'' 番目の位置になるよう配置したとき、''k'' を ''T'' に対する ''P'' の「位置」とする。 * ''P'' の一致または出現とは、配置した ''P'' と ''T'' が等価である場合をいう。'T'' の長さを ''m'' とする。 * ''P'' の最後尾の文字が ''T'' の先頭から ''k'' 番目の位置になるよう配置したとき、''k'' を ''T'' に対する ''P'' の「位置」とする。 * ''P'' の一致または出現とは、配置した ''P'' と ''T'' が等価である場合をいう。' の長さを ''m'' とする。 * ''P'' の最後尾の文字が ''T'' の先頭から ''k'' 番目の位置になるよう配置したとき、''k'' を ''T'' に対する ''P'' の「位置」とする。 * ''P'' の一致または出現とは、配置した ''P'' と ''T'' が等価である場合をいう。'm'' とする。 * ''P'' の最後尾の文字が ''T'' の先頭から ''k'' 番目の位置になるよう配置したとき、''k'' を ''T'' に対する ''P'' の「位置」とする。 * ''P'' の一致または出現とは、配置した ''P'' と ''T'' が等価である場合をいう。' とする。 * ''P'' の最後尾の文字が ''T'' の先頭から ''k'' 番目の位置になるよう配置したとき、''k'' を ''T'' に対する ''P'' の「位置」とする。 * ''P'' の一致または出現とは、配置した ''P'' と ''T'' が等価である場合をいう。'P'' の最後尾の文字が ''T'' の先頭から ''k'' 番目の位置になるよう配置したとき、''k'' を ''T'' に対する ''P'' の「位置」とする。 * ''P'' の一致または出現とは、配置した ''P'' と ''T'' が等価である場合をいう。' の最後尾の文字が ''T'' の先頭から ''k'' 番目の位置になるよう配置したとき、''k'' を ''T'' に対する ''P'' の「位置」とする。 * ''P'' の一致または出現とは、配置した ''P'' と ''T'' が等価である場合をいう。'T'' の先頭から ''k'' 番目の位置になるよう配置したとき、''k'' を ''T'' に対する ''P'' の「位置」とする。 * ''P'' の一致または出現とは、配置した ''P'' と ''T'' が等価である場合をいう。' の先頭から ''k'' 番目の位置になるよう配置したとき、''k'' を ''T'' に対する ''P'' の「位置」とする。 * ''P'' の一致または出現とは、配置した ''P'' と ''T'' が等価である場合をいう。'k'' 番目の位置になるよう配置したとき、''k'' を ''T'' に対する ''P'' の「位置」とする。 * ''P'' の一致または出現とは、配置した ''P'' と ''T'' が等価である場合をいう。' 番目の位置になるよう配置したとき、''k'' を ''T'' に対する ''P'' の「位置」とする。 * ''P'' の一致または出現とは、配置した ''P'' と ''T'' が等価である場合をいう。'k'' を ''T'' に対する ''P'' の「位置」とする。 * ''P'' の一致または出現とは、配置した ''P'' と ''T'' が等価である場合をいう。' を ''T'' に対する ''P'' の「位置」とする。 * ''P'' の一致または出現とは、配置した ''P'' と ''T'' が等価である場合をいう。'T'' に対する ''P'' の「位置」とする。 * ''P'' の一致または出現とは、配置した ''P'' と ''T'' が等価である場合をいう。' に対する ''P'' の「位置」とする。 * ''P'' の一致または出現とは、配置した ''P'' と ''T'' が等価である場合をいう。'P'' の「位置」とする。 * ''P'' の一致または出現とは、配置した ''P'' と ''T'' が等価である場合をいう。' の「位置」とする。 * ''P'' の一致または出現とは、配置した ''P'' と ''T'' が等価である場合をいう。'P'' の一致または出現とは、配置した ''P'' と ''T'' が等価である場合をいう。' の一致または出現とは、配置した ''P'' と ''T'' が等価である場合をいう。'P'' と ''T'' が等価である場合をいう。' と ''T'' が等価である場合をいう。'T'' が等価である場合をいう。' が等価である場合をいう。 抄文引用元・出典: フリー百科事典『 ウィキペディア(Wikipedia)』 ■ウィキペディアで「ボイヤー-ムーア文字列検索アルゴリズム」の詳細全文を読む 英語版ウィキペディアに対照対訳語「 Boyer-Moore string search algorithm 」があります。 スポンサード リンク
|